Hilfe
Parameter
x | X-Koordinate |
y | Y-Koordinate |
buffer | Grafikbuffer, aus dem gelesen werden soll. Standard=aktueller Buffer |
Rückgabewert
Integerwert, der einen Farbcode als RGB-Wert beinhaltet. Siehe Zusatzinformationen, um zu sehen wie man es ausrechnet.
Beschreibung
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.





Zusatzinformation
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.
FF FF FF FF - Farbcode in einem Integerwert
=> vier Informationen (je 00-FF = 256 Werte pro Information)
1.: Beinhaltet Alpha-Information 255 (FFh), erst ab Blitz3D ist Alpha voll verfügbar
2.: Rotanteil 0-255 (0h-FFh)
3.: Grünanteil 0-255 (0h-FFh)
4.: Blauanteil 0-255 (0h-FFh)
Da die einzelnen Farbanteile praktisch nebeneinander abgelegt sind, kann man mittels Bit-Verschiebung und Masken den Farbcode mit relativ wenig aufwand berechnen:
Berechnung der Farbanteile aus einem Farbcode:
a = argb Shr 24
r = (argb Shr 16) And $FF
g = (argb Shr 8) And $FF
b = argb And $FF
Shr verschiebt die Bits im Integer soweit, dass diese an der ersten Byte-Position (von rechts!) liegen. Mittels And
$FF werden die Bytes 2-4 maskiert (ihr Wert wird so ignoriert).
Berechnung des Farbcodes aus den Farbanteilen:
argb = a Shl 24 + r Shl 16 + g Shl 8 + b
Mittels Shl werden die einzelnen Byte-Werte an die richtige Position im Farbcode geschoben.
Berechnung der Farbwerte ohne Alpha:
rgb = argb AND $FFFFFF
Beispiel
Standardbeispiel:
a = argb Shr 24
r = (argb Shr 16) And $FF
g = (argb Shr 8) And $FF
b = argb And $FF
Text 0, 0, a + " " + r + " " + g + " " + b
Siehe auch
CopyPixel, CopyPixelFast, GetColor, Plot, ReadPixelFast, WritePixel, WritePixelFast

