Farbreduktion
Übersicht

![]() |
Der EisvogelBetreff: Farbreduktion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Leute
Ich möchte eine Funktion programmieren, die mir 24 Bit RGB Farbwerte nach 21, 18, 15, 12, 9, 6 und 3 Bit konvertiert. Jedoch klappt es nicht. Mein erste Ansatz war es alles per Shr und Shl hin und her zu schieben was jedoch nicht funktioniert hat, da ich dann niemals auf 255 gekommen wäre. Was ich noch sagen sollte ist, dass ich die Farbwerte am Ende in 24 Bit vorliegend brauche, also 8 Bit pro Kanal, jedoch in den jeweiligen Bitwerten (oben gennant). Dieser erste Ansatz hat leider nicht geklappt. Um von 24 Bit auf 3 Bit zu kommen verwendne ich folgende Methode: BlitzMax: [AUSKLAPPEN] Function To3(r:Int Var, g:Int Var, b:Int Var) Jedoch das auf andere Bitwerte anzuwenden hat nicht geklappt. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du addierst nur 128 zu jedem Kanal...
Ich würde Dreisatz wählen: r / 255 gibt einen Wert 0-1, den skalierst du mit der gewünschten Bittiefe, z.B. 2 Bit = 2^2 -1 = 3 Runden nicht vergessen und wieder Rückwärts rechnen: 8 Bit, r=96 (von max 255) 3 * 96 / 255 = 1,13 = 1 und zurück: 2 Bit, r=1 (von max 3) 255 * 1 / 3 = 85 |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank. Da hab ich mal wieder den Wald vor lauter Bäumen nicht gesehen. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group