Dokumentation
GetValueColor
int GetValueColor (int $VariablenID)
Parameterliste
| VariablenID | ID der Variable |
Rückgabewert
Farbwert im Format 0xRRGGBB (Rot, Grün und Blau mit je 8 Bit)
Beschreibung
Die Funktion liefert den Inhalt der Variable mit der ID VariablenID als Farbwert im Format 0xRRGGBB. Damit kann eine Farbe unabhängig davon gelesen werden, wie sie in der Variable gespeichert ist.
- Integer-Variablen enthalten die Farbe bereits als 0xRRGGBB. Ihr Wert wird unverändert geliefert, eine Prüfung der Darstellung findet nicht statt.
- String-Variablen müssen die Darstellung Farbe verwenden. Der Wert ist ein JSON-Objekt, das entsprechend dem Parameter ENCODING der Darstellung in RGB umgerechnet wird:
| ENCODING | Konstante | Kodierung | JSON-Wert der String-Variable | Wertebereiche |
|---|---|---|---|---|
| 0 | COLOR_ENCODING_RGB |
RGB | {"r": ..., "g": ..., "b": ...} | r, g, b: 0 - 255 |
| 1 | COLOR_ENCODING_CMYK |
CMYK | {"c": ..., "m": ..., "y": ..., "k": ...} | c, m, y, k: 0 - 100 |
| 2 | COLOR_ENCODING_HSV |
HSV | {"h": ..., "s": ..., "v": ...} | h: 0 - 360, s, v: 0 - 100 |
| 3 | COLOR_ENCODING_HSL |
HSL | {"h": ..., "s": ..., "l": ...} | h: 0 - 360, s, l: 0 - 100 |
| 4 | COLOR_ENCODING_XY |
xy | {"x": ..., "y": ...} | x, y: Position auf der CIE-Normfarbtafel, 0 - 1 |
Bei der Kodierung xy wird nur die Farbart gespeichert, keine Helligkeit. Die Umrechnung erfolgt über den Farbraum der Darstellung (COLOR_SPACE); außer bei Farbraum 5 (Keiner) werden die Koordinaten auf das Farbdreieck des Farbraums begrenzt.
Verwendet eine String-Variable nicht die Darstellung Farbe, schlägt die Funktion mit "Variable does not use presentation Color" fehl. Bei einer unbekannten Kodierung schlägt sie mit "Invalid Color Encoding" fehl, bei Variablen vom Typ Boolean oder Float mit "Invalid Variable Type". Der Inhalt einer String-Variable muss gültiges JSON mit den oben genannten Feldern sein; ein leerer String führt zu einem Fehler.
Die Darstellung kann über IPS_GetVariablePresentation abgefragt und über IPS_SetVariableCustomPresentation gesetzt werden. Siehe auch SetValueColor, RequestActionColor und GetValue.
Beispiel
$farbe = GetValueColor(12345);
// Farbe in ihre Anteile zerlegen
$rot = ($farbe >> 16) & 0xFF;
$gruen = ($farbe >> 8) & 0xFF;
$blau = $farbe & 0xFF;
printf("#%06X (R: %d, G: %d, B: %d)", $farbe, $rot, $gruen, $blau);
// liefert z.B.: #FF8000 (R: 255, G: 128, B: 0)