![]() |
Bitmap erstellen mit TBitmap.Create und speichern
Hallo zusammen,
mit folgendem Source erstelle ich ein Bitmap und speicher dieses ab.
Delphi-Quellcode:
Das funktioniert und die Datei ist 3MB groß.
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'); Aber wieso funktioniert folgendes nicht?
Delphi-Quellcode:
Er speichert mir zwar eine Datei auf C aber die ist 0k groß.
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'); Ich habe nur die Schleifenvariablen erhöht. Wisst ihr was das sein kann? MFG Alex |
Re: Bitmap erstellen mit TBitmap.Create und speichern
Welche Typen haben i und j?
|
Re: Bitmap erstellen mit TBitmap.Create und speichern
beides Integer. Normale Schleifenvariablen...
|
Re: Bitmap erstellen mit TBitmap.Create und speichern
Liste der Anhänge anzeigen (Anzahl: 1)
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)
|
Re: Bitmap erstellen mit TBitmap.Create und speichern
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 |
Re: Bitmap erstellen mit TBitmap.Create und speichern
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 |
Re: Bitmap erstellen mit TBitmap.Create und speichern
Und wenn du die Daten im Thread irgendwo zwischenspeicherst?
|
Re: Bitmap erstellen mit TBitmap.Create und speichern
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:
Ich verstehe es einfach nicht...
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; MFG Alex |
Re: Bitmap erstellen mit TBitmap.Create und speichern
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) |
Re: Bitmap erstellen mit TBitmap.Create und speichern
Das mit der 0 ist wohl nur ein Test. Er hat wohl vor Bilddaten per INDY zu versenden
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz