RGB-Wert zerlegen



  • Über den Color-Dialog werden die Integerwerte für Rot, Grün und Blau angezeigt. Wie komme ich an diese Werte, wenn ich eine Farbe über die Palette ausgewählt habe ?

    Denn hier finden de dann Verwendung:

    Gdiplus::SolidBrush opaqueBrush(Gdiplus::Color(120, 202, 7, 192));
    


  • Hi,

    also wenn du mit dem ColorDialog eine Farbe gewählt hast, is die so aufgebaut:
    der Rot-Wert * 1, der Grün-Wert * 256 und der Rot-Wert * 65536.
    Dann kannste die Werte einfach mit Modulo rausrechnen.

    mfg
    Jakel



  • also wenn jakels methode funktioniert nimm diese, weil sie schneller arbeitet

    ne alternative bieten die folgenden GDI Funktionen

    #include "windows.h"
    ...
    TColor myColor;
    ...
    int red=GetRValue(myColor),
        green=GetGValue(myColor),
        blue=GetBValue(myColor);
    

    gruß

    neal



  • oder das hier

    int rgbcol = ColorToRGB(Color);
         int rcol = (rgbcol & 0xFF0000) >> 16;
         int gcol = (rgbcol & 0x00FF00) >> 8;
         int bcol = rgbcol & 0x0000FF;
    

Anmelden zum Antworten