Farbreduktion

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Der Eisvogel

Betreff: Farbreduktion

BeitragSa, Mai 21, 2011 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
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)
r = (r + 128) / 256 * 255
g = (g + 128) / 256 * 255
b = (b + 128) / 256 * 255
End Function


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.

Xeres

Moderator

BeitragSa, Mai 21, 2011 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Der Eisvogel

BeitragSa, Mai 21, 2011 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group