Windows-Farben in RGB convertieren

Hallo. Mein Problem: wenn man z.B. die Farbe eines Shapes ausliest, bekommt man eine longint-Zahl z.B. im Format 12632256. Ich brauche die aber in RGB, also als RGB(192, 192, 192). In welchem Verhältnis stehen diese Zahlen zueinander und wie bekomme ich die hin. Ich weiss, dass es eine Funktion „ColortoRGB“ gibt, aber die funktioniert leider nur andersherum.

Gruß, Jens.

Hi Jens,

die Farben erhältst Du wie folgt (Basic-Code):

r = iRGB And 255
g = (iRGB \ 256) And 255
b = (iRGB \ 65536) And 255

Erklärung: Wenn Du die longint-Zahl iRGB nach Hex wandelst, siehst Du, dass jeweils 1 Byte für eine Farbe steht:

iRGB(r, g, b) = $BBGGRR,

also etwa RGB(200, 100, 200) = $C864C8 (Lila).

Die einzelnen Komponenten kannst Du nun mit den Divisionen und den logischen Operationen wieder extrahieren ("" = Ganzzahldivision, also a \ b = int(a/b))

Gruß

Sculpture