Die Klasse ColorInfo (gb.image) präsentiert u.a. detaillierte Informationen zu einer Farbe. Die Klasse verfügt über die Eigenschaften Alpha, Color, Red, Green, Blue, Hue, Saturation und Value, die Sie auslesen oder setzen können. Der Datentyp für alle Eigenschaften ist Integer.
In der folgenden Tabelle werden die o.a. Eigenschaften der Klasse beschrieben:
ColorInfo | Intervall | Beschreibung |
---|---|---|
Alpha | 0..255 | Legt den Alpha-Wert fest oder gibt den Wert zurück. |
Color | 0..256³-1 | Legt den vollständigen Farb-Wert des ColorInfo-Objekts fest oder gibt den Wert zurück. |
Red | 0..255 | Legt den Rot-Anteil der Farbe fest oder gibt den Wert zurück → RGB-Farbraum |
Green | 0..255 | Legt den Grün-Anteil der Farbe fest oder gibt den Wert zurück → RGB-Farbraum |
Blue | 0..255 | Legt den Blau-Anteil der Farbe fest oder gibt den Wert zurück → RGB-Farbraum |
Hue | 0..359 | Legt den Farbton-Anteil der Farbe fest oder gibt den Wert zurück → HSV-Farbraum |
Saturation | 0..255 | Legt den Anteil der Sättigung der Farbe fest oder gibt den Wert zurück → HSV-Farbraum |
Value | 0..255 | Legt den Helligkeit-Anteil der Farbe fest oder gibt den Wert zurück → HSV-Farbraum |
Tabelle 23.4.2.2.1 : Eigenschaften Klasse ColorInfo (gb.image)
Sie bekommen für eine beliebige Farbe iColor mit
Color[iColor]
ein ColorInfo-Objekt, von welchem Sie einerseits die RGB- und HSV-Informationen des verwendeten Farbraums sowie den Wert für den Alpha-Kanal auslesen können oder andererseits die RGB- und HSV-Farbanteile setzen!
Anschließend müssen Sie die geänderte Farbe aus den Farb-Anteilen generieren, wobei die nicht geänderten Farb-Anteile entweder mit Color[iColor].Green und Color[iColor].Blue oder mit hColorInfo.Green und hColorInfo.Blue ausgelesen und übernommen werden:
Public Sub btnColorChange_Click() Dim iColor As Integer Dim hColorInfo As ColorInfo iColor = CChooser1.SelectedColor '-- Synonym for iColor = CChooser1.Value hColorInfo = Color[iColor] '-- A ColorInfo object is returned '-- Print Color[iColor].Red '-- Reading out the red colour component with the [] operator '-- Print hColorInfo.Red '-- Read out red colour component (alternative) hColorInfo.Red = 180 '-- Change red colour component hColorInfo.Alpha = 140 '-- Change alpha value '-- Print hColorInfo.Red '-- Read out the current red colour component '-- Print hColorInfo.Alpha '-- Read out the current alpha value CChooser1.Value = Color.RGB(hColorInfo.Red, Color[iColor].Green, hColorInfo.Blue, hColorInfo.Alpha) '-- Good alternative: CChooser1.Value = hColorInfo.Color End
Hinweis: Die komplexen Methoden SetRGB(..) und SetHSV(..) der Klasse Color (gb.image) – mit deren Hilfe Sie den RGB(A)-Farbanteil oder HSV(A)-Farbanteil für jede Farbe einzeln(!) ändern können – sind schneller und deshalb vorzuziehen:
Public Sub btnSetRGB_Click() Dim iColor As Integer iColor = CChooser1.SelectedColor CChooser1.SelectedColor = Color.SetRGB(iColor, 180, Color[iColor].Green, Color[iColor].Blue, 140) End