24 bit Color umwandeln

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Acer
User
Beiträge: 4
Registriert: Donnerstag 11. August 2016, 14:47

hallo Liebe Python Community,

ich habe folgendes Problem und zwar versuche ich die Aktuelle Funktion umzukehren.

Code: Alles auswählen

def Color(red, green, blue):
	"""Convert the provided red, green, blue color to a 24-bit color value.
	Each color component should be a value 0-255 where 0 is the lowest intensity
	and 255 is the highest intensity.
	"""
	return (red << 16) | (green << 8) | blue
leider funktionier mein code nicht :-/

Code: Alles auswählen

def ColortoRGB(color):
    r = color >> 16
    g = color >>  8
    b = color
    return [r,g,b]
Ist das irgendwie möglich die 24 bit Color zurück umzuwandeln?

danke für eure Hilfe.

mfg: Ace
Zuletzt geändert von Anonymous am Donnerstag 11. August 2016, 17:40, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Fast richtig:

Code: Alles auswählen

In [4]: r, g, b = 100, 55, 42

In [5]: x = r << 16 | g << 8 | b

In [6]: (x >> 16)
Out[6]: 100

In [7]: (x >> 8) & 0xFF
Out[7]: 55

In [8]: (x >> 0) & 0xFF
Out[8]: 42

In [9]: bin(x >> 8)
Out[9]: '0b110010000110111'

In [10]: bin((x >> 8) & 0xFF)
Out[10]: '0b110111'

In [11]: bin(x >> 0)
Out[11]: '0b11001000011011100101010'

In [12]: bin((x >> 0) & 0xFF)
Out[12]: '0b101010'
Das Problem ist, dass du bei dem 8 Bit shift noch die Informationen von 'red' dabei hast und bei 0 Bit noch 'red' und 'green'.
the more they change the more they stay the same
Acer
User
Beiträge: 4
Registriert: Donnerstag 11. August 2016, 14:47

Hey Danke das klappt super.
Antworten