Hilfe
Parameter
x | X-Koordinate |
y | Y-Koordinate |
rgb | Farbcode mit Rot-, Grün- und Blauanteilen |
buffer | Grafikbuffer, in den der Punkt eingezeichnet werden soll |
Rückgabewert
-
Beschreibung
Diese Anweisung zeichnet einen Punkt an der X/Y-Koordinate ein. Für die Ausgabe wird immer der aktuelle Buffer verwendet. Mit der Buffer-Option kann die Grafikausgabe auf einem anderen Buffer erfolgen (siehe BackBuffer, FrontBuffer
und ImageBuffer
).
Benutze ReadPixel oder ReadPixelFast
, um die Farbe eines Pixels zu ermitteln.


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:
While KeyHit(1) = 0
rgb = Rnd(0, 255) Shl 16 + Rnd(0, 255) Shl 8 + Rnd(0, 255)
WritePixel Rnd(0, 639), Rnd(0, 479), rgb
Wend
End
Siehe auch
BufferDirty, CopyPixel, CopyPixelFast, GetColor, Plot, ReadPixel, ReadPixelFast, WritePixelFast

