Seite 1 von 1
Farbe von 24Bit in 8Bit umrechnen
Verfasst: 23.03.2010 16:44
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:
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
Re: Farbe von 24Bit in 8Bit umrechnen
Verfasst: 23.03.2010 16:51
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.
Re: Farbe von 24Bit in 8Bit umrechnen
Verfasst: 23.03.2010 16:59
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
Re: Farbe von 24Bit in 8Bit umrechnen
Verfasst: 23.03.2010 18:19
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.

Re: Farbe von 24Bit in 8Bit umrechnen
Verfasst: 23.03.2010 18:26
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.
Re: Farbe von 24Bit in 8Bit umrechnen
Verfasst: 23.03.2010 19:41
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.