GETCOLOR X, Y


Beschreibung
Dieser Befehl ändert die aktuelle Zeichenfarbe, indem die Farbe von einem Pixel auf dem Bildschirm ausgewählt wird. Es funktioniert eigentlich genau wie die Pipette-Funktion in PaintBrush.

Hinweis: Bei einem 16-Bit Grafikmodus können nicht alle Farben dargestellt werden. Dadurch können Farbsprünge entstehen und eine leicht verfälschte Farbe ausgewählt werden. Benutze eine höhere Farbtiefe, um dieses zu verhindern.



Parameter
X = X-Koordinate auf dem Bildschirm
Y = Y-Koordinate auf dem Bildschirm


Rückgabewert
Aktuelle Zeichenfarbe wird geändert.


Alternative
Wenn ihr solchen Code verwendet:

GETCOLOR x,y
r=COLORRED()
g=COLORGREEN()
b=COLORBLUE()


Hier eine schnellere Alternative (620% schneller):

LOCKBUFFER FRONTBUFFER()
rgb=READPIXELFAST(x,y)
r=(rgb AND $FF0000)/$10000
g=(rgb AND $FF00)/$100
b=rgb AND $FF
UNLOCKBUFFER FRONTBUFFER()


Allerdings sollte dies nicht außerhalb des Grafikbereichs angewendet werden. Die Deaktivierung des Debuggers bringt eine enorme Geschwindigkeitssteigerung!


Beispiel
Dieses Programm zeichnet farbige Rechtecke. Am Ende wird eine Farbe ausgewählt:

GRAPHICS 320,200
SETBUFFER BACKBUFFER()
FOR t = 1 TO 1000
   COLOR RND(255), RND(255), RND(255)
   RECT RND(320),RND(200),10,10,1
NEXT
GETCOLOR 100,100
PRINT "Farbe bei 100,100 ist:"
PRINT COLORRED()
PRINT COLORGREEN()
PRINT COLORBLUE()
FLIP
WAITKEY()


Siehe auch
COLOR, CLSCOLOR, COLORBLUE, COLORGREEN, COLORRED, COPYPIXEL, COPYPIXELFAST, READPIXEL, READPIXELFAST