IMAGECREATE

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » I » IMAGECREATE

Syntax: IMAGECREATE (Breite, Höhe[, [Farbe] [, Farbtiefe]])
Typ: Funktion
Kategorie: Grafik

IMAGECREATE reserviert einen Speicherbereich als Datenpuffer für ein Bild.

Diese Funktion reserviert einen Speicherbereich, in dem Pixeldaten gepuffert werden können. Sobald dieser Puffer erstellt wurde, können alle Drawing Primitives (einfachste Grafikfunktionen) darauf zugreifen. Bei seiner Erstellung wird der Speicherbereich mit der angegebenen Farbe oder der Transparenzfarbe des jeweiligen Modus ausgefüllt (für indizierte Grafikmodi ist die Transparenzfarbe 0, für alle anderen ist es &HFF00FF; siehe auch SCREENCONTROL).

IMAGECREATE gibt, ähnlich wie ALLOCATE, einen Pointer auf den reservierten Speicherbereich zurück. Wenn IMAGECREATE verwendet werden soll, um Grafiken zwischen Bildschirm und Puffer auszutauschen, dann funktioniert dies nur, wenn bereits ein Grafikmodus mit SCREEN (Anweisung) oder SCREENRES initiiert wurde. Falls IMAGECREATE fehlschlägt, ist das Ergebnis 0.
Bildpuffer, die Sie mit IMAGECREATE erstellt haben, sollten unbedingt mit IMAGEDESTROY entfernt werden, sobald sie nicht mehr benötigt werden, um den Speicherplatz freizugeben.

Zum Speicheraufbau eines Bildpuffers siehe Interne Pixelformate: Bildpuffer.

Beispiel:

Dim Img As Byte Ptr
Dim Cut As Byte Ptr

Screenres 400, 300, 32

Img = Imagecreate(64, 64, RGBA(64, 160, 0, 255))
Cut = Imagecreate(32, 32)

If Img = 0 OR Cut = 0 Then
   Print "Speicher konnte nicht reserviert werden!"
   If Img Then ImageDestroy Img
   IF Cut Then ImageDestroy Cut
End If

Circle Img, (32, 32), 28, RGBA(255, 0, 0, 128), , , , F
Get Img, (0, 0)-(31, 31), Cut

Put Img, (32, 32), Cut, Pset
Put (160, 120), Img, Pset
Put (180, 140), Img, Alpha

Imagedestroy Img
Imagedestroy Cut
Sleep

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:

Siehe auch:
IMAGEDESTROY, IMAGEINFO, IMAGECONVERTROW, GET (Grafik), PUT (Grafik), PSET (Grafik), SCREENRES, Interne Pixelformate, Grafik