Ich hatte gelesen, Du schriebst, dass nicht so einfach ist, wie in HTML - Farben für Webseiten. Die sind dort 8bit-8bit-8bit (style="color:#452f63"), 45h - 2fh - 63h. Macht 24Bit.
Von welchem Farbformat, nach welchem muss es denn?
"r,g,b haben immer die volle range von 0-255, die dann nur anders in die 16- bzw. auch optional 24-bit oder 32-bit truecolor umkodiert werden sollen."
Dann ist es 8-8-8 nach 5-6-5. Wo ist der Fehler?
Allerdings kann man die 24Bit-Farbe natürlich nur in ein 32Bit-Register packen. Um in einem Stück zu rechnen.Code:sinngemäß wäre so richtig: G = (uint8_t)(color24/1024)&63;
Dumm gelaufen, wenn der Arduino nur 16Bit-Register hatVor Jahren noch hätte ich das jetzt einfach auf 16Bit-Operationen aufgeteilt, als ich noch in Übung war. So muss ich nochmal drüber nachdenken.
Nachtrag:
Vorher war der ganze 24Bit-Farbwert: rgb888
Wenn die Farbwerte einzeln vorliegen, ist es so, wie ich Anfangs schrieb:
int rot1 = rot/8; int gruen1 = gruen/4; int blau1 = blau/8;
So wird aus Rot mit 8 Bit, Rot mit 5 Bit, aus Grün mit 8 Bit, wird Grün mit 6 Bit, aus Blau mit 8 Bit, wird Blau mit 5 Bit.







Zitieren

Lesezeichen