Farbe von 24Bit in 8Bit umrechnen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Farbe von 24Bit in 8Bit umrechnen

Beitrag von zigapeda »

Moin moin,

bin schon laenger dabei herauszufinden wie man 24bit
farben in 8bit umrechnet. Hab hier im forum gesucht,
bei google und hab deutsche und englische artikel in
wikipedia ueber farben durchgelesen. Was ich bis jetzt
rausfinden konnte war, das die 8bit so aufgeteilt sind:

Code: Alles auswählen

RRRGGGBB
Muss ich einfach nur die 8bit von rot und gruen durch
32 bzw. die 8bit von blau durch 64 teilen oder gibt es
da ein anderes verfahren an das ich mich halten muss?

vielen dank schon mal,
mfg daniel
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8812
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Farbe von 24Bit in 8Bit umrechnen

Beitrag von NicTheQuick »

Ja, das sollte so richtig sein. Aber vielleicht solltest du den geteilten Wert kaufmännisch runden, damit rot nicht erst dann voll da ist, wenn im 32-Bit-Wert rot voll da ist. Das selbe gilt dann natürlich auch für grün und blau.
Bei 8-Bit kenne ich aber auch die Möglichkeit mit Paletten, wie sie z.B. bei GIF-Bildern verwendet werden. Es gibt also 256 verschiedene frei definierbare 24-Bit Farben und die Farbe jedes Pixels im Bild wird dann durch einen Index zwischen 0 und 255 festgelegt.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Farbe von 24Bit in 8Bit umrechnen

Beitrag von zigapeda »

Hi Nic,

ja das hab ich auch gelesen, kommt fuer mich aber nicht in frage
weil ich mehr als 256 farben hab, sie also irgendwie grob zusammen
fassen muss und das geht IMO am besten wenn ich sie in 8 bit
werte konvertiere^^ Dann setz ich mich zuhause gleich mal hin
und bau eine Procedure fuer alle mit dem kaufmaennischen runden

mfg daniel
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: Farbe von 24Bit in 8Bit umrechnen

Beitrag von c4s »

Guck dir lieber mal folgenden Code von luis aus dem englischen Forum an:
http://www.purebasic.fr/english/viewtop ... 12&t=39606

Führt zu sehr guten Ergebnissen und ist nur zu empfehlen. :allright:
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: Farbe von 24Bit in 8Bit umrechnen

Beitrag von WPö »

zigapeda hat geschrieben:kommt fuer mich aber nicht in frage weil ich mehr als 256 farben hab, sie also irgendwie grob zusammen
fassen muss und das geht IMO am besten wenn ich sie in 8 bit werte konvertiere
Sehr schön, Daniel. Bedenke aber auch, daß selbst mit RRRGGGBB-Kodierung nicht mehr als 256 Farben 'rauskommen können. Wenn Du jetzt Bilder mit mehr unterschiedlichen Blau- als Rottönen hast, biste gekniffen. Tatsächlich ist die Methode mit indizierter Palette besser geeignet, um Bilder 'runterzurechnen.

Das einzige Problem, das Du lösen mußt, ist, eine Ähnlichkeitsanalyse der Farbwerte aller Bildpunkte mit Gewichtung zu programmieren, sodaß die geringsten Farbartverluste auftreten. Hierzu schaue Dir einmal die Funktion Bild -> Modus -> Indiziert... im Programm GIMP an. Quelltext sollte auch irgendwo im Netz 'rumliegen. Ist zugegebenermaßen ein irrer Aufwand, den Quelltext herauszuschälen, aber damit werden die besten Ergebnisse sichtbar.

Gruß - WPö

PS: Sehr schöne Ergebnisse mit dem Code aus dem englischen Forum! Damit ist der Aufwand der Code-Extraktion und -Portierung von GIMP wohl erledigt.
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Farbe von 24Bit in 8Bit umrechnen

Beitrag von Thorium »

8 Bit indiziert also mit Palette ist das einzige was Sinn macht. PureBasic dürfte mit 8bit RGB nicht umgehen können also musst du es jedesmal vor dem anzeigen in 24bit umrechnen, außerdem kann kein habwegs modernes Dateiformat 8 Bit RGB halten, die können alle 8 Bit nur indiziert. Die Farbqnzahl ist sowieso auf die bitzahl begrenzt ganz egal wie die abgelegt werden. Du solltest bei 8 Bit immer indiziert arbeiten, ist im übrigen auch viel schneller da nicht geshiftet werden muss.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten