AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein 24bit RGB nach 8bit indexed color konvertieren
Thema durchsuchen
Ansicht
Themen-Optionen

24bit RGB nach 8bit indexed color konvertieren

Offene Frage von "OldGrumpy"
Ein Thema von OldGrumpy · begonnen am 11. Okt 2007 · letzter Beitrag vom 12. Okt 2007
Antwort Antwort
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Re: 24bit RGB nach 8bit indexed color konvertieren

  Alt 12. Okt 2007, 15:06
Kleiner Nachtrag: mir ist aufgefallen, dass der von mir beschriebene Algorithmus suboptimal arbeitet. Hier die verbesserte Version:

1. Zu einem Quader merken wir uns jeweils den Bereich von-bis auf der R-, G- und B-Achse.
2. Beginne mit dem einen Quader (0-255,0-255,0-255) kleinsten Quader, der alle vorhandenen Farben umschließt.
3. (Hier beginnt die Schleife) Suche den flächenmäßig größten Quader. Hat dieser die Größe 1, dann springe zu Punkt 6.
4. Teile diesen Quader entlang seiner längsten Achse so auf, dass möglichst gleich viele Farben in den beiden entstehenden Hälften sind. Geht dies nicht (alle Farben gleich), dann reduziere diesen Quader auf diese eine Farbe und mache mit Punkt 3 weiter. Achte darauf, evtl. Lücken zwischen zwei benachbarten Farben aus dem Ergebnis auszuschließen bzw. die beiden kleinsten Ergebnisquader zu wählen.
5. Solange wir weniger als 256 Quader haben, mache mit Punkt 3 weiter.
6. (Hier endet die Schleife) Wir sind fast fertig: jetzt entspricht jeder Quader einem späteren Paletten-Eintrag.
7. Ermittle jetzt für jeden Quader den wirklichen mittleren Farbwert der Einzelfarben, die darin liegen. Bei diesem Schritt kann man auch direkt die 256-Farb-Bitmap erstellen, da der Quader-Index ja dem späteren Paletten-Index entspricht.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz