Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [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 - PALETTE

Referenz-Navigation

 

Syntax A: PALETTE [Index, Farbe]
Syntax B: PALETTE Index, Rotwert, Grünwert, Blauwert
Syntax C: PALETTE USING ArrayName[(idx)]
Typ: Anweisung
Kategorie: Grafik

PALETTE bearbeitet die aktuelle Farbpalette.

PALETTE ändert die aktuellen Einträge in der Farbpalette (nur in Grafik-Modi). Die Anweisung wird nur bei Modi bis 8 bpp eingesetzt; bei höheren Farbtiefen hat PALETTE keine Auswirkung.

'Index' und 'Farbe' sind abhängig von der aktuellen Farbtiefe des Grafikfensters. Wird das Grafikfenster mit BefehlsreferenzeintragSCREEN initialisiert, dann gelten folgende Farbbereiche:

BildschirmmodusIndexbereichFarbbereich
10-30-15
20-10-15
7, 80-150-15
90-150-63
110-1siehe unten
120-15siehe unten
13 - 210-255siehe unten

In den Bildschirmmodi 1, 2, 7, 8 und 9 können Sie jeder Farbnummer einen Index aus einer vordefinierten Palette zuweisen.
In den anderen Bildschirmmodi sowie bei der Verwendung von BefehlsreferenzeintragSCREENRES müssen Sie die Farbe als BGR-Farbwerte angeben. Diese haben das Format &hBBGGRR. BB, GG und RR sind jeweils der Blau-, Grün- und Rot-Wert der Farbe. Jede Teilfarbe kann dabei einen Wert von &h0 bis &h3F annehmen (0-63 als dezimale Werte).
Eine alternative Methode der Angabe der Farbe ist diese Methode:

clr = rot OR (grün SHL 8) OR (blau SHL 16)

Auch hier müssen rot, grün und blau im Bereich von 0 bis 63 liegen.

Der nächste SCREENRES- oder SCREEN-Befehl stellt die Standardpalette wieder her (siehe auch BefehlsreferenzeintragStandard-Paletten).

Alternativ zum Befehl PALETTE können Sie BefehlsreferenzeintragOUT verwenden, um die Palette zu bearbeiten; diese Methode ist allerdings veraltet und sollte nicht mehr verwendet werden.

Es ist auch möglich, die Teilfarben als einzelne Parameter anzugeben (Syntax B). Hier kann jeder Farbanteil im Bereich von 0 bis 255 liegen.

PALETTE USING (Syntax C) ändert alle Einträge der Palette auf einmal; die dazu nötigen Farbwerte werden dabei aus einem Array gelesen. Dazu muss ein Array übergeben werden, das groß genug ist, um Farbwerte für jeden Index des aktuellen Bildschirmmodus zu enthalten. Für 1 bpp müssen das 2 Elemente, für 2 bpp 4, für 4 bpp 16 und für 8 bpp 256 Elemente sein. Es müssen BefehlsreferenzeintragINTEGER-Werte sein, die das oben angegebene Format besitzen.
Die Farben, die in 'ArrayName' ab Index 'Index' gespeichert sind, werden dann den Farbnummern zugewiesen, wobei bei den Palette-Einträgen mit Farbe 0 begonnen wird. Die Verwendung von PALETTE USING mit Teilfarben ist nicht möglich; jedes Element des Arrays muss einen BGR-Wert enthalten.

Jede Veränderung der Palette wird sofort auf dem Bildschirm sichtbar.

Beispiel:

SCREENRES 640, 480, 4     ' 16 indizierte Farben
DIM AS INTEGER rot, gruen, blau, farbe

' Vertikale Streifen in allen 16 Farben zeichnen
FOR i AS INTEGER = 0 TO 15
  LINE (i * 40, 0)-((i + 1) * 40, 479), i, BF
NEXT

' Auf Tastendruck warten
GETKEY

' Farbverlauf von schwarz nach blau
FOR i AS INTEGER = 0 TO 15
  rot   = 0
  gruen = 0
  blau  = i * 4
  farbe = rot OR (gruen SHL 8) OR (blau SHL 16)
  PALETTE i, farbe
NEXT

GETKEY

' Farbverlauf von schwarz nach grün
FOR i AS INTEGER = 0 TO 15
  PALETTE i, 0, (i+1)*16 - 1, 0
NEXT

GETKEY

' Farbverlauf von schwarz nach rot
DIM Farben(15) AS INTEGER
FOR i AS INTEGER = 0 TO 15
  Farben(i) = i * 4
NEXT
PALETTE USING Farben
GETKEY

' Standardpalette wiederherstellen
PALETTE
SLEEP

Unterschiede zu früheren Versionen von FreeBASIC:
Seit Version 0.13 ist es auch möglich, die Teilfarben als einzelne Parameter anzugeben (Syntax B).

Siehe auch:
BefehlsreferenzeintragPALETTE GET, BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragCOLOR (Anweisung), BefehlsreferenzeintragStandardpaletten, BefehlsreferenzeintragGrafik


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