« Zurück zu Produkt

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)
Haben Sie noch Fragen?