Hilfe
Parameter
Bild | Identität des Bildes (z.B. mit LoadImage ermittelt |
red | Rotanteil einer Farbe (0=wenig, 255=viel) |
green | Grünanteil einer Farbe (0=wenig, 255=viel) |
blue | Blauanteil einer Farbe (0=wenig, 255=viel) |
Rückgabewert
-
Beschreibung
Diese Anweisung setzt die Transparenzfarbe eines Bildes. Normalerweise wird ein Objekt als rechteckiges Bild auf dem Bildschirm erscheinen. Mit diesem Befehl wird eine bestimmte Farbe ausgewählt, die dann nicht mehr eingezeichnet wird. Jedem Bild wird zuerst die schwarze Farbe als MaskColor zugewiesen. Da die schwarze Farbe sehr häufig in Bildern vorkommt, kann man auch eine andere Farbe auswählen - z.B. rot oder lila.
Zusatzinformationen
Die Farbe auf allen Bildschirmen wird aus den drei Grundfarben des additiven Farbmodells zusammengemischt - rot, grün und blau. Es können somit zwar nicht alle sichtbaren Farben abgedeckt werden, dennoch sind es sehr viele. Je größer der Lichtanteil einer Farbe, desto heller wird das Licht. Werden z.B. alle drei Grundfarben zusammengemischt, so entsteht weißes Licht.
Die Bits 0-4 (5x) speichern den Blauanteil.
Die Bits 5-10 (6x) speichern den Grünanteil.
Die Bits 11-15 (5x) speichern den Rotanteil.
Logischerweise können Blau- und Rotanteile nur 32 verschiedene Abstufungen von 0 bis 248 im Abstand von 8 aufweisen. Grünanteile können dagegen 64 verschiedene Abstufungen von 0 bis 254 im Abstand von 4 aufweisen. Dies kann man für bessere Farben ausnutzen: Wähle eine Farbe, die auch im 16 Bit-Modus korrekt dargestellt wird - z.B. anstelle der Farbe 255,255,255 besser 248,248,248 nehmen.
- Ein Bild konnte auf dem Datenträger nicht gefunden werden
- Die Grafikdatei ist fehlerhaft
- Der Grafikspeicher wurde mit Graphics gelöscht
- Wert der Variable "Bild" wurde gelöscht
- Die Variable "Bild" hat einen falschen Namen
- Die Variable "Bild" wurde nicht als Global definiert
- Siehe auch GraphicsLost (nur Blitz3D)
Alternativ könnte auch die Fehlermeldung "Memory access violation" stehen, diese taucht jedoch meist nur bei ausgeschaltetem Debugger auf. Es empfiehlt sich dann den Debugger zu aktivieren um genauere Erkenntnisse über den Fehler zu erhalten.
Beispiel
Dieses Beispiel lädt ein Animationsbild (Pfad evtl. anpassen!) und zeichnet es animiert mit einer transparenten Farbe ein:
SetBuffer BackBuffer()
gfxSparks = LoadAnimImage("media\spark.bmp", 32, 32, 0, 3)
MaskImage gfxSparks, 255, 0, 255
ClsColor 0, 0, 255 While Not KeyHit(1)
Cls
If MilliSecs() > tmrSparks + 100 Then
tmrSparks = MilliSecs()
frmSparks = (frmSparks + 1) Mod 3
End If
DrawImage gfxSparks, MouseX(), MouseY(), frmSparks
Flip
Wend
Siehe auch
DrawBlock, DrawBlockRect, DrawImage, DrawImageRect, LoadAnimImage, LoadImage