Referenz - RGBA
Syntax: RGBA (rot, grün, blau, alpha)
Typ: Funktion
Katerorie: Grafik
RGBA errechnet die gültige 32-Farbnummer in hi-/truecolor-Bildschirmmodi bei angegebenem Rot-, Grün-, Blau- und Alphawert der Farbe.
- 'rot', 'grün', 'blau' und 'alpha' müssen im Bereich von 0 bis 255 liegen.
- Der Rückgabewert ist ein UINTEGER und entspricht einer Farbnummer im Format &hAARRGGBB. RR, GG, BB und AA sind dabei die Farbkomponenten bzw. der Alphawert im Hexadezimalformat.
RGBA arbeitet genauso wie RGB, abgesehen von der Möglichkeit, einen Alphawert (Transparenzgrad) anzugeben. Es ist ein Makro, das folgendermaßen definiert ist:
#DEFINE RGBA(r,g,b,a) ((CUINT(r) SHL 16) OR (CUINT(g) SHL 8) OR CUINT(b) OR (CUINT(a) SHL 24))
Beispiel 1: Zeichnen mit halbtransparenten Bildern
ScreenRes 320, 240, 32 ' Grafikfenster erstellen
Dim As Any Ptr img
Dim As Integer x, y
' Bild mit verschiedenen Transparenzstufen und Farben erstellen
img = ImageCreate(64, 64)
For x = 0 To 63
For y = 0 To 63
PSet img, (x, y), RGBA(x * 4, 0, y * 4, (x + y) * 2)
Next y
Next x
Circle img, (31, 31), 25, RGBA(0, 127, 192, 192), ,,, F ' halbtransparenter blauer Kreis
Line img, (26, 20)-(38, 44), RGBA(255, 255, 255, 0), BF ' transparentes weißes Rechteck
' Hintergrund zeichnen (diagonale weiße Strecken)
For x = -240 To 319 Step 10
Line (x, 0)-Step(240, 240), RGB(255, 255, 255)
Next
Line (10, 10)-(310, 37), RGB(127, 0, 0), BF ' rotes Rechteck
Line (10, 146)-(310, 229), RGB(0, 127, 0), BF ' grünes Rechteck
' Bild zeichnen mit PSET
Draw String(64, 20), "PSet"
Put(48, 48), img, PSet
Put(48, 156), img, PSet
' Bild zeichnen mit ALPHA
Draw String (220, 20), "Alpha"
Put(208, 48), img, Alpha
Put(208, 156), img, Alpha
' Speicher freigeben und Programm beenden
ImageDestroy img
Sleep
Beispiel 2: Auslesen einzelner Farbkomponenten aus einem RGBA-Wert
#define RGBA_R(c) (CUInt(c) Shr 16 And 255)
#define RGBA_G(c) (CUInt(c) Shr 8 And 255)
#define RGBA_B(c) (CUInt(c) And 255)
#define RGBA_A(c) (CUInt(c) Shr 24 )
Dim As UInteger r, g, b, a
Dim As UInteger col = RGBA(255, 192, 64, 128)
Print Using "Farbe: _&h\ \"; Hex(col, 8)
r = RGBA_R(col)
g = RGBA_G(col)
b = RGBA_B(col)
a = RGBA_A(col)
Print
Print Using "Rot: _&h\\ = ###"; Hex(r, 2); r
Print Using "Gruen: _&h\\ = ###"; Hex(g, 2); g
Print Using "Blau: _&h\\ = ###"; Hex(b, 2); b
Print Using "Alpha: _&h\\ = ###"; Hex(a, 2); a
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
Die Version __RGBA in der Dialektform -lang qb existiert erst seit FreeBASIC. v0.24.
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht RGBA nicht zur Verfügung und kann nur über __RGBA aufgerufen werden.
Siehe auch:
RGB, COLOR (Anweisung), DEFINE (Meta), Grafik
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|