Habe mal versucht ein Dateiformat einzulesen und auf die Pixels eines Bitmaps zu übertragen.
Das geht in diesem Fall recht einfach, da die Datei ähnlich wie ein monochromes Bitmap aufgebaut ist.
Die Datei hat einen Header von 16 Byte:
Delphi-Quellcode:
type
ani_header = packed record
Magic: DWORD; // Immer "LCDA" = $4144434C
Format: Word; // Zurzeit einfach 0000
Width: Word; // Breite Einzelbild
Height: Word; // Höhe Einzelbild
Count: Word; // Anzahl Einzelbilder
Delay: DWORD; // Veruögerung der Einzelbilder in Mikrosekunden (1 Millionenstel Sek.)
end;
Dann folgen die Daten, in meinem Fall haben die Bilder immer eine Auflösung von
120x64 Pixel = 120 Spalten x 8 Zeilen x 8 Bit = 960 Byte
Soweit, sogut. Habe auch schon Code zum Übertragen auf die Pixelmatrix, aber irgendwas stimmt nicht. In Zeile 8, Zeile 16, 24 usw. sind immer alle Pixel 1 = hell, was eine Streifen im Bild verursacht, hat einer ne Idee warum?
Anbei ein Testprojekt.
PS: Es geht im Prinzip nur um den Code von LoadLCDAniFromStream(), der Rest ist nur zum testen.
PPS: Die Bilder an sich sind grobkörnig, weil monochrom, die Streifen sind trotzdem gut zu erkennen, z.B. bei Bild 14.