EisFuX: ImageColorClosest() und Co.

Beitrag lesen

(Hallo|Hi(ho)|Tag|Mahlzeit) Hopsel,

Tatsächlich scheint dieses Problem gar nicht so trivial lösbar zu sein, wie ich hoffte.
Ich habe das Problem nun auf die Delta-E-Funktion des Color Measurement Committees heruntergebrochen.
Folgende PHP-Funktion gibt mir zu einer gegebenen Farbe im RGB-Format und einer Palette mit Farben ebenfalls im RGB-Format die Palettenfarbe aus, die am ehesten der gegegeben Farbe entspricht:

Moment! Du wolltest eine PHP-Funktion?
Warum hast du das nicht gleich gesagt?

In PHP kämpft man doch nicht mit Algorithmen, sondern schaut, ob sich in der riesigen Menge an fertig eingebauten Funktionen was Passendes findet:

imageColorClosestHWB() berücksichtigt Farbton, Schwarz- und Weißwert einer Farbe.

imageColorClosest() ist die (wahrscheinlich weniger brauchbare) RGB-Variante.

Beide Funktionen benötigen eine Image-Resource. Die kann man sich speichersparend per imageCreate(1,1) erzeugen.
Die Zahl der Farben pro Palette ist zwar auf 256 beschränkt, dürfte aber für die meisten Anwendungen ausreichen.

MffG
EisFuX