Sehr schnell, die Pixel werden ja direkt in/aufs Bitmap geschrieben ohne ein Array oder sonst irgendetwas dazwischen. Ob es nun noch schneller währe ein Bitmap mit
CreateBitmapIndirect zu erstellen und dem Bitmap ein
Array of Bytes zuzuweisen glaube ich nicht.
Ich hatte es eigentlich so vor aber die Doku / Delphi zu
CreateBitmapIndirect ist sehr dünn. Zudem habe ich auch noch keinen richtigen Erfolg vorweisen können. Du kannst getrost diese Version verwenden.
Bei dieser Version wird ein Bitmap (1Bit also Zweifarbig) normal mit
TBitmap.Create erstellt, das ist für eine
VCL- Anwendung iO. Bei dem lesen oder Schreiben einzelner Bits wird mit dem
Scanline die entsprechende Y-Zeile gelesen und danach das passende Bit in dem entsprechende Byte gesetzt.
Da das Bitmap ist ein "
VCL"-Bitmap ist kannst du das auch mit
MyBitmap.SaveToFile speichern oder mit dem Gegenstück laden.
Bei dem erstellen des Bitmaps wird dies von der
VCL vorinitialisiert, also von der Palette usw. so das du ein Bitmap er hältst was Weiß ist. Wenn ich Zeit finde schaue ich mir das mal genauer an um noch eine Option einzubauen die auch das Erstellen mit einem Schw. Hintergrund ermöglicht.
Ich habe festgestellt das die Funktion
GetPixel... nicht korr. funktioniert, das muss ich noch mal ausbessern.
Was möchtest du denn gern machen eine Animation ?
Zitat von
alcaeus:
PS: du schreibst 1000001 Pixel, nicht nur 1000000
Och der eine, der ist Zugabe gewesen.