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 25.3.2.1.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 für CChooser1.SelectedColor ist CChooser1.Value hColorInfo = Color[iColor] ' Ein ColorInfo-Objekt wird zurückgegeben ' Print Color[iColor].Red ' Rot-Farbanteil auslesen mit dem []-Operator ' Print hColorInfo.Red ' Rot-Farbanteil auslesen (Alternative) hColorInfo.Red = 180 ' Rot-Farbanteil ändern hColorInfo.Alpha = 140 ' Alpha-Wert ändern ' Print hColorInfo.Red ' Aktuellen Rot-Farbanteil auslesen ' Print hColorInfo.Alpha ' Aktuellen Alpha-Wert auslesen CChooser1.Value = Color.RGB(hColorInfo.Red, Color[iColor].Green, hColorInfo.Blue, hColorInfo.Alpha) ' Gute Alternative: ' CChooser1.Value = hColorInfo.Color End ' btnColorChange_Click()
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 – 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 ' btnSetRGB_Click()
Artikel