Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - IMAGECREATE

Referenz-Navigation

 

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 BefehlsreferenzeintragRGB(255, 0, 255)). Siehe auch BefehlsreferenzeintragSCREENCONTROL.

IMAGECREATE gibt, ähnlich wie BefehlsreferenzeintragALLOCATE, 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 BefehlsreferenzeintragSCREENRES oder BefehlsreferenzeintragSCREEN initiiert wurde. Falls IMAGECREATE fehlschlägt, ist das Ergebnis 0.
Bildpuffer, die Sie mit IMAGECREATE erstellt haben, sollten unbedingt mit BefehlsreferenzeintragIMAGEDESTROY entfernt werden, sobald sie nicht mehr benötigt werden, um den Speicherplatz freizugeben.

Der Bildpuffer ist vom Typ Image, der in der Datei fbgfx.bi definiert wird.

TYPE Image FIELD = 1
  UNION
    old             AS _OLD_HEADER
    type            AS UINTEGER
  END UNION
  bpp                AS INTEGER
  width              AS UINTEGER
  height             AS UINTEGER
  pitch              AS UINTEGER
  _reserved(1 to 12) AS UBYTE
END TYPE

Wenn Sie fbgfx.bi mit Befehlsreferenzeintrag#INCLUDE einbinden, beachten Sie, dass Image zum BefehlsreferenzeintragNAMESPACE FB gehört.
Näheres zum Speicheraufbau des Bildpuffers siehe unter BefehlsreferenzeintragInterne Pixelformate: Struktur eines Bildpuffers für die Drawing Primitives.

Beispiel:

#Include Once "fbgfx.bi"
Dim As FB.Image Ptr img, cut

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:
BefehlsreferenzeintragIMAGEDESTROY, BefehlsreferenzeintragIMAGEINFO, BefehlsreferenzeintragIMAGECONVERTROW, BefehlsreferenzeintragGET (Grafik), BefehlsreferenzeintragPUT (Grafik), BefehlsreferenzeintragPSET (Grafik), BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragInterne Pixelformate, BefehlsreferenzeintragGrafik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 29.07.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 20.08.2014 von Redakteurnemored gespeichert.
  Versionen Versionen