Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [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 - GET (Grafik)

Referenz-Navigation

 

Syntax: GET [QuellPuffer], [STEP] (x1, y1) - [STEP] (x2, y2), ZielPuffer
Typ: Anweisung
Kategorie: Grafik

GET speichert einen Ausschnitt aus einem Grafikfenster (bzw. vom Bildschirm bei Vollbildmodi) in einem Bildpuffer.

GET wird benutzt, um einen Bildschirmausschnitt zu speichern, um ihn später mit BefehlsreferenzeintragPUT (Grafik) zu verwenden. Die Koordinaten werden von den letzten BefehlsreferenzeintragWINDOW- und BefehlsreferenzeintragVIEW-Anweisungen beeinflusst und müssen beide innerhalb der aktuellen Fenstergrenzen (bzw. Bildschirmgrenzen) liegen.

Der angegebene Puffer muss groß genug sein, um den Bildschirmausschnitt speichern zu können. Die dafür benötigte Größe hängt von der Größe des Bildschirmausschnitts und der verwendeten Farbtiefe ab. IMAGECREATE erzeugt automatisch einen Puffer, der ein Bild angegebener Größe aufnehmen kann. Siehe auch BefehlsreferenzeintragInterne Pixelformate zur manuellen Berechnung des Speicherplatzbedarfs.

Beispiel:
Das folgende Beispiel zeichnet einen Spielstein, der mit der Maus über einen mehrfarbigen Hintergrund bewegt wird. GET wird verwendet, um den aktuellen Hintergrund unter der Spielstein-Position zu speichern, um ihn nach einer Bewegung des Steins wieder herstellen zu können.

#DEFINE PI 3.141592653589793
SCREENRES 300, 200, 32                      ' Grafikscreen mit 32bit Farbtiefe
DIM AS ANY PTR bild, hg
DIM AS UINTEGER hell = RGB(255, 64, 64)     ' heller Farbwert des Steins
DIM AS UINTEGER dunkel = RGB(192, 0, 0)     ' dunkler Farbwert des Steins

' Bild in den Puffer schreiben
bild = IMAGECREATE(40, 40)
hg = IMAGECREATE(40, 40)
CIRCLE bild, (20, 25), 15, dunkel, PI, 0, .6
LINE bild, (5, 20)-step (0, 5), dunkel
LINE bild, (35, 20)-step (0, 5), dunkel
CIRCLE bild, (20, 20), 15, dunkel, , , .6
PAINT bild, (20, 30), dunkel, dunkel
PAINT bild, (20, 20), hell, dunkel

' Hintergrund erstellen
LINE (50, 50)-(250, 150), RGB(0,255,0), BF  ' gruenes Rechteck ...
LINE (80, 80)-(220, 120), RGB(0,0,255), BF  ' ... und darin ein blaues

DIM AS INTEGER mausX = 0, mausY = 0, mausB  ' Mausposition und Buttonstatus
DIM AS INTEGER altX = 0, altY = 0           ' zuletzt gemerkte Mausposition
SETMOUSE mausX, mausY, 0, 1                 ' Maus auf das Fenster beschraenken
GET (altX, altY)-step(39, 39), hg           ' Hintergrund speichern
PUT (mausX, mausY), bild, TRANS
DO
  GETMOUSE mausX, mausY, , mausB            ' neue Position ermitteln ...
  IF mausX > 260 THEN mausX = 260           ' ... und an den Grenzen anpassen
  IF mausy > 160 THEN mausY = 160
  IF mausX <> altX OR mausY <> altY THEN    ' Maus wurde bewegt
    SCREENLOCK
    PUT (altX, altY), hg, PSET              ' alte Position wiederherstellen
    GET (mausX, mausY)-step(39, 39), hg     ' Hintergrund speichern
    PUT (mausX, mausY), bild, TRANS         ' neue Position zeichnen
    SCREENUNLOCK
    altX = mausX                            ' neue Position merken
    altY = mausY
  END IF
  SLEEP 1
LOOP UNTIL mausB > 0 OR INKEY = CHR(27)     ' bei Mausklick oder ESC beenden
IMAGEDESTROY bild                           ' Bildpuffer freigeben
IMAGEDESTROY hg

Unterschiede zu QB:

Unterschiede zu früheren Versionen von FreeBASIC:

Unterschiede unter den FB-Dialektformen:

Siehe auch:
BefehlsreferenzeintragGET (Datei), BefehlsreferenzeintragPALETTE GET, BefehlsreferenzeintragPUT (Grafik), BefehlsreferenzeintragIMAGECREATE, BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragGrafik


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