Moin Al, Am Mittwoch, 7. September 2005 23:18 schrieb Al Bogner:
Hat jemand eine Idee, wie man bei gegebener beliebiger Farbe die am ähnlichsten passende Standardfarbe (aus 216 Farben) bestimmen kann? Zu den Farben vgl. zB http://www.starhtml.de/online/farben.htm#216Standardfarben
Errechnet wurde also zB #76726C und das Ergebnis sollte ein Farbname oder wieder ein Hex-Wert sein.
Kochrezept:
- du zerlegst den hex string in seine 3 Komponenten
echo "#76726C" | cut -b 2,3 für den rot Anteil
- für jede Komponente bestimmst du diejenige Std. Komponente mit der
geringsten differenz zu deinem errechneten Wert
um das prinzip zu verdeutlichen:
for j in 22 33 54 FC aa Bc Da a1 1a;
do
echo "0x$j" | awk -W non-decimal-data \
'BEGIN{lastdiff=256;stdwert=0}
{
for ( a=0; a<257;a=a+(0x33+0x0) ){
input=($1+0);
absdiff=gensub("-","","g",(a - input))+0;
printf( "std: %i inp: %i diff: %i absdiff: %i\n", a, input,
(a-input),absdiff);
if(absdiff