| |
|
|
| Hallo,
ich hatte es nicht unbedingt vor, aber wegen der großen Nachfrage mache ich es doch. Hier die Beschreibung, wie man ein ByteArray (erzeugt mit InitExtFX()) manuell manipulieren kann. Man sollte aber ganz genau wissen, was man macht, weil ein versehentliches Schreiben in falsche Speicherbereiche beträchtlichen Schaden verursachen kann. Darum nehme ich diese Infos nicht in die Anleitung mit auf, wer aber danach sucht, kann hier in diesem Forum fündig werden...
InitExtFX() übergibt euch einen Zeiger. Er zeigt auf eine Struktur (BITMAPINFOHEADER), diese Struktur wurde allerdings von ProSpeed um ein Long-Int erweitert. Hier die Offsets:
0 LONG biSize 4 LONG biWidth, Breite des Bildes 8 LONG biHeight, Höhe des Bildes 12 WORD biPlanes, immer 1 14 WORD biBitCount, bei ProSpeed Byte-Arrays immer 24 (Bit) 16 LONG biCompression, immer BI_RGB 20 LONG biSizeImage, Größe des Byte-Arrays in Bytes 24 LONG biXPelsPerMeter 28 LONG biYPelsPerMeter 32 LONG biClrUsed 36 LONG biClrImportant 40 LONG Zeiger auf den Speicher des Byte-Arrays
Auf die Werte der Struktur kann von Profan (ab 7) aus mit Long und @Long zugegriffen werden. Am interessantesten ist natürlich das Long-Int an Offset 40. Nachdem ihr das ByteArray manipuliert habt, könnt ihr es mit CopyArray() auf den Bildschirm bringen.
Gruß, Frank Abbing |
|
|
| |
|
|
|
| Nachtrag:
Ich hatte vergessen, dieses noch zu erwähnen:
Eine Bitmap wird in einem Byte-Array von links unten nach rechts oben abgespeichert, dummerweise 8-((. Pro Pixel werden 3 Byte benötigt, ein Blauwert, ein Grünwert und ein Rotwert. Genauso ist übrigens auch ein ein Bitmapfile aufgebaut.
Frank |
|
|
| |
|
|