Hallo, Wie kann ich aus einem RGB Wert (0 bis 16777216). Die einzelnen Farbanteile rausrechnen? Also 65536 ist z.B. 256, 0, 0. Wie kann ich das umkehren? Danke
R = farbwert And &HFF& G = farbwert \ &H100& And &HFF& B = farbwert \ &H10000 And &HFF&
PEte schrieb: > Wie kann ich aus einem RGB Wert (0 bis 16777216). Die einzelnen > Farbanteile rausrechnen? Also 65536 ist z.B. 256, 0, 0. Wie kann ich das > umkehren? Falls Du 0 bis 16777215 meinst und falls Du mit 65536 eigentlich 1, 0, 0 meinst: r = (x >> 16) & 0xff g = (x >> 8) & 0xff b = (x >> 0) & 0xff Viele Grüße, Simon
Martin Schwaikert schrieb: > R = farbwert And &HFF& > G = farbwert \ &H100& And &HFF& > B = farbwert \ &H10000 And &HFF& In C:
1 | RedColor = RGBColor && 255 ; |
2 | GreenColor = RGBColor / 256 && 255 ; |
3 | BlueColor = RGBColor / 65536 & 255 ; |
So bekomme ich die abstrusesten Werte. Was habe ich falsch "übersetzt"?
> So bekomme ich die abstrusesten Werte. Was habe ich falsch "übersetzt"?
Sieh Dir mal den Unterschied zwischen den Operatoren & und && an.
1 | RedColor = RGBColor & 255; |
2 | GreenColor = (RGBColor / 256) & 255; |
3 | BlueColor = (RGBColor / 65536) & 255; |
>r = (x >> 16) & 0xff >g = (x >> 8) & 0xff >b = (x >> 0) & 0xff x sollte ein uint32_t sein. Wenn r,g,b ein uint8_t ist, kannst du dir das & sparen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.