AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bitmap erstellen mit TBitmap.Create und speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap erstellen mit TBitmap.Create und speichern

Ein Thema von Alex_ITA01 · begonnen am 13. Aug 2007 · letzter Beitrag vom 14. Aug 2007
Antwort Antwort
Seite 1 von 3  1 23      
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:23
Hallo zusammen,
mit folgendem Source erstelle ich ein Bitmap und speicher dieses ab.

Delphi-Quellcode:
Bmp := TBitmap.Create;
Bmp.Width := 1024;
Bmp.Height := 768;
Bmp.Pixelformat := pf32bit;

for i := 0 to 5 do
begin
  for j := 0 to 5 do
  begin
    Bmp.Canvas.Pixels[i,j] := 0;
  end;
end;

Bmp.SaveToFile('C:\Test.bmp');
Das funktioniert und die Datei ist 3MB groß.
Aber wieso funktioniert folgendes nicht?

Delphi-Quellcode:
Bmp := TBitmap.Create;
Bmp.Width := 1024;
Bmp.Height := 768;
Bmp.Pixelformat := pf32bit;

for i := 0 to 300 do
begin
  for j := 0 to 300 do
  begin
    Bmp.Canvas.Pixels[i,j] := 0;
  end;
end;

Bmp.SaveToFile('C:\Test.bmp');
Er speichert mir zwar eine Datei auf C aber die ist 0k groß.
Ich habe nur die Schleifenvariablen erhöht.
Wisst ihr was das sein kann?
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:27
Welche Typen haben i und j?
Markus Kinzler
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:29
beides Integer. Normale Schleifenvariablen...
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#4

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:33
Habe es gerade mal mit 100 getestet (anstatt 300) und da gehts auch noch allerdings ist das Bild nicht wie erwartet ein konstant gefülltes schwarzes Quadrat sondern hat auch ein paar weiße Lücken drinne... Siehe Screenshot (nur ein Ausschnitt aus der gesamten Bilddatei)
Angehängte Grafiken
Dateityp: bmp info_135.bmp (12,3 KB, 41x aufgerufen)
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#5

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:36
Habe es jetzt mal in einer Testanwendung programmiert, da geht es wunderbar.
Es funktioniert anscheind nur nicht, wenn ich es in einem Thread laufen lasse, der mit den Indy's über TCP komuniziert...
Könnte es an soetwas liegen?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#6

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:41
nur zur Ergänzung:
Die weißen Balken sind immer an verschiedenen Stellen obwohl ich nix am Quelltext ändere...
ich verstehe das nicht?!

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:48
Und wenn du die Daten im Thread irgendwo zwischenspeicherst?
Markus Kinzler
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#8

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 14:51
Ich habe im Thread jetzt schon eine neue Procedure geschrieben mit dem Namen CreateNewBitmap;

Wenn ich darin folgenden Source verwende, dann hab ich mal weiße Balken da, mal da und mal da...

Delphi-Quellcode:
procedure CreateNewBitmap;
var
  Bmp : TBitmap;
  i, j : Integer;
begin
  Bmp := TBitmap.Create;
  Bmp.Width := 1024;
  Bmp.Height := 768;
  Bmp.Pixelformat := pf32bit;

  for i := 0 to 1023 do
  begin
    for j := 0 to 767 do
    begin
      Bmp.Canvas.Pixels[i,j] := 0;
    end;
  end;

  Bmp.SaveToFile('C:\Test.bmp');
end;
Ich verstehe es einfach nicht...
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 15:02
Und wenn du das schwarze Quadrat einfach mal mit FillRect() füllst, anstatt jedes Pixel einzeln zu zeichnen?
(Farbe setzt du vorher mit Brush.Color)
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Bitmap erstellen mit TBitmap.Create und speichern

  Alt 13. Aug 2007, 15:05
Das mit der 0 ist wohl nur ein Test. Er hat wohl vor Bilddaten per INDY zu versenden
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz