Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: RGB-Anteile aus DWORD auslesen und als INT ausgeben

  1. #1
    Registriert seit
    24.03.2014
    Beiträge
    37
    Danke
    21
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    habe folgendes Problem:


    Gegeben habe ich ein DWORD für eine bestimmten Farbe,

    z.B. dwBlue : DWORD := 16#0000DCDF;

    Aus diesem würde ich gerne die RGB-Anteile auslesen und als INT ausgeben, also etwa so:

    iRed = 0; // 16#00
    iGreen = 220; // 16#DC
    iBlue = 223; // 16#DF


    Leider komme ich gerade nicht drauf, wie ich die Anteile einzeln auslesen kann und diese auch dementsprechend umrechnen kann...?


    Grüße
    Malcolm
    Zitieren Zitieren RGB-Anteile aus DWORD auslesen und als INT ausgeben  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Nur so ins Blaue geschossen.
    Code:
    iBlue := DWORD_TO_INT(dwRGB and 16#FF);
    iGreen := DWORD_TO_INT(SHR(dwRGB,8) and 16#FF);
    iRed := DOWRD_TO_INT(SHR(dwRGB,16) and 16#FF);
    Blau: Bits maskieren, so das alle Bits ausser den niederwertigsten 8 wegfallen und dann das DWORD in INT wandeln.
    Grün: DWORD um 8 Bits nach rechts shiften, maskieren und wandeln.
    Rot: DWORD um 16 Bits nach rechts shiften, maskieren ....
    Sänd from mei Kombjudder mitse Dastadurr.

  3. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    Malcolm (20.08.2015)

  4. #3
    Registriert seit
    20.01.2012
    Beiträge
    98
    Danke
    0
    Erhielt 36 Danke für 34 Beiträge

    Standard

    Hallo,

    ich würde maskieren und dann bitshiften

    DWORD AND 16#FF - Blau
    SHR(DWORD, AND 16#FF - Grün
    SHR(DWORD,16) AND 16#FF - Rot

    Gruß

    EDIT: OK, zu langsam
    Geändert von Thruser (20.08.2015 um 09:27 Uhr)

  5. Folgender Benutzer sagt Danke zu Thruser für den nützlichen Beitrag:

    Malcolm (20.08.2015)

  6. #4
    Registriert seit
    24.03.2014
    Beiträge
    37
    Danke
    21
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Perfekt, danke!

Ähnliche Themen

  1. Step 7 Nummer des DB`s aus Block DB als word ausgeben
    Von Maggi im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 04.12.2014, 18:50
  2. Antworten: 7
    Letzter Beitrag: 03.09.2012, 12:48
  3. Auslesen eines Byte aus einem DWORD (SCL)
    Von tahren im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.06.2010, 12:01
  4. PID Anteile aus HMI vorgeben
    Von tRoN im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.07.2009, 15:55
  5. Datenbausteine auslesen und als csv speichern vom PC aus
    Von masa im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 28.08.2008, 07:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •