rgb=READPIXEL (X, Y [,Buffer])


Beschreibungv1.40
Diese Funktion liest die Farbe eines Pixels an der X/Y-Koordinate aus. Dabei wird die Farbe immer aus dem aktuellen Buffer ermitteln. Wenn man möchte, dann kann man einen speziellen Grafikbuffer mit dem optionalen Parameter "Buffer" angeben - dann wird daraus die Farbe ausgelesen. (siehe BACKBUFFER, FRONTBUFFER und IMAGEBUFFER).

Benutze WRITEPIXEL oder WRITEPIXELFAST, um die ausgelesene Farbe wieder einzuzeichnen.

Der ermittelte Farbcode wird sofort an die Variable übergeben. Die RGB-Anteile können nicht mit den Befehlen COLORRED, COLORGREEN und COLORBLUE ermittelt werden. Die können nur ausgerechnet werden (siehe Zusatzinformationen).

Benutze den Befehl READPIXELFAST für einen noch schnellere Ermittlung des Farbwerts. Die Deaktivierung des Debuggers bringt eine enorme Geschwindigkeitssteigerung. READPIXEL ist schneller als GETCOLOR.


Parameter
X=X-Koordinate
Y=Y-Koordinate
Buffer=anderer Grafikbuffer


Rückgabewert
Integerwert beinhaltet einen Farbcode als RGB-Wert. Siehe Zusatzinformationen, um zu sehen wie man es ausrechnet.


Zusatzinformationen
So wird ein Farbcode abgespeichert:

Es wird ein Integerwert übergeben. Ein Integerwert besteht aus 4 Byte. Das erste Byte (von rechts!) gibt den Blauanteil einer Farbe wieder, das zweite Byte den Grünanteil und das dritte Byte den Rotanteil. Die Farbanteile sind Werte im Bereich von 0-255. Das vierte Byte gibt den Alpha-Wert wieder. Alpha ist ein Transparenzwert, der erst ab Blitz3D voll verfügbar sein wird. Es sind Werte zwischen 0 (transparent) bis 255 (normal) möglich. Blitz2D kann keine Transparenz darstellen, somit hat es den Wert 255. Bis V1.53 gab es keinen Alphawert.

FFFFFFFF - Farbcode in einem Integerwert

Blauanteil 0-255 (0h-FFh)
Grünanteil 0-255 (0h-FFh)
Rotanteil 0-255 (0h-FFh)
Beinhaltet ab V1.53 Alpha-Information 255 (FFh)
Erst ab Blitz3D ist Alpha voll verfügbar!!!

Berechnung der Farbanteile aus einem Farbcode:
a=(rgb AND $FF000000)/$1000000
r=(rgb AND $FF0000)/$10000
g=(rgb AND $FF00)/$100
b=rgb AND $FF


Berechnung des Farbcodes aus den Farbanteilen:
rgb=a*$1000000 + r*$10000 + g*$100 + b

Berechnung der Farbwerte ohne Alpha:
rgb2=rgb AND $FFFFFF


Beispiel
In diesem Beispiel liest READPIXEL den Farbwert ein und ermittelt die RGB-Farbanteile:

rgb=READPIXEL(x,y)
r=(rgb AND $FF0000)/$10000
g=(rgb AND $FF00)/$100
b=rgb AND $FF
PRINT r+" "+g+" "+b


Siehe auch
COPYPIXEL, COPYPIXELFAST, GETCOLOR, PLOT, READPIXELFAST, WRITEPIXEL, WRITEPIXELFAST