Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - ALPHA

Referenz-Navigation

 

Syntax: { PUT | DRAW STRING } [Puffer, ] [STEP] (x, y), [ weitere Angaben ... ], ALPHA [, alphawert]
Typ: Schlüsselwort
Kategorie: Grafik

ALPHA ist ein Schlüsselwort, das im Zusammenhang mit BefehlsreferenzeintragPUT (Grafik) und BefehlsreferenzeintragDRAW STRING eingesetzt wird.

Mit ALPHA lassen sich Transparenz-Effekte erzeugen. Die ALPHA-Methode wird verwendet, um Bildschirmausschnitte 'durchscheinend' auszugeben; das Ergebnis der Bildschirmausgabe ist eine 'Mischfarbe' aus dem Pixel, das überzeichnet wurde, und dem, das im Quellpuffer gespeichert war.

Das Aktionswort ALPHA ist nur in High-/Truecolor-Modi verfügbar, also in Modi ab 15bpp.

'alphawert' stellt den Transparenzgrad des zu zeichnenden Ausschnitts bzw. das Mischungsverhältnis der beiden Farben dar; 255 bedeutet dabei volle Überdeckung, 0 keine Überdeckung. 127 ist der exakte Mittelwert zwischen den beiden Farben. Ebenso wie bei BefehlsreferenzeintragTRANS und BefehlsreferenzeintragADD werden Pixel in der Maskenfarbe nicht gezeichnet (siehe dazu auch BefehlsreferenzeintragInterne Pixelformate).

In 32bpp-Modi ist es auch zulässig, den Parameter 'alphawert' auszulassen; in diesem Fall benutzt FreeBASIC den Alphawert, der für jedes Pixel einzeln angegeben wurde. Dies ist nur in 32bpp-Modi möglich, da nur hier ein eingebetteter Alphawert für jedes Pixel möglich ist; siehe dazu auch Interne Pixelformate.

Wird 'alphawert' ausgelassen, jedoch ein Modus mit einer Farbtiefe unter 32bpp verwendet, so geht FreeBASIC von alphawert = 255 aus; dies entspricht völliger Überdeckung bzw. dem Aktionswort BefehlsreferenzeintragTRANS.

Beispiel:

' 32-bit-Bildschirm erstellen
ScreenRes 320, 200, 32

' schachbrettartigen Hintergrund zeichnen
For y As Integer = 0 To 199
    For x As Integer = 0 To 319
        PSet (x, y), IIf((x Shr 2 Xor y Shr 2) And 1, RGB(160, 160, 160), RGB(128, 128, 128))
    Next x
Next y

' Sprite erstellen
Dim img As Any Ptr = ImageCreate(32, 32, RGBA(0, 0, 0, 0))
For y As Single = -15.5 To 15.5
    For x As Single = -15.5 To 15.5
        Dim As Integer r, g, b, a
        If y <= 0 Then
            If x <= 0 Then
                r = 255: g = 0: b = 0   ' rot
            Else
                r = 0: g = 0: b = 255   ' blau
            End If
        Else
            If x <= 0 Then
                r = 0: g = 255: b = 0   ' gruen
            Else
                r = 255: g = 0: b = 255 ' magenta (transparente Maskenfarbe)
            End If
        End If
        a = 255 - (x ^ 2 + y ^ 2)
        If a < 0 Then a = 0: r = 255: g = 0: b = 255
        PSet img, (15.5 + x, 15.5 - y), RGBA(r, g, b, a)
    Next x
Next y

' mit verschiedenen Alphawerten zeichnen; TRANS dient zum Vergleich
Draw String (32, 10), "Single alpha"
Put (80 - 16,  50 - 16), img, Alpha, 64
Put (80 - 16, 100 - 16), img, Alpha, 192
Put (80 - 16, 150 - 16), img, Trans

' mit vollem Alphakanal zeichnen
Draw String (200, 10), "Full alpha"
Put (240 - 16, 100 - 16), img, Alpha

' Speicher freigeben und auf Tastendruck warten
ImageDestroy img
Sleep

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.14

Siehe auch:
BefehlsreferenzeintragPUT (Grafik), BefehlsreferenzeintragDRAW STRING, BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragAND (Methode), BefehlsreferenzeintragOR (Methode), BefehlsreferenzeintragXOR (Methode), BefehlsreferenzeintragPSET (Methode), BefehlsreferenzeintragPRESET (Methode), BefehlsreferenzeintragADD, BefehlsreferenzeintragTRANS, BefehlsreferenzeintragCUSTOM, BefehlsreferenzeintragGrafik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 25.06.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 26.08.2012 von Redakteurnemored gespeichert.
  Versionen Versionen