(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