Ich frage mich übrigens grade, wie ich einen
RGB(Red,Green,Blue) Wert schlank in ein $FFFFFFFF 4Byte Hex Wert konvertiere...
Delphi-Quellcode:
var
r, g, b: Byte;
myColor: TColor;
begin
myColor := (b shl 16) or (g shl 8) or r;
end;
Zur Ähnlichkeit:
Wenn du schon im
HSV/
HSL Raum bist, ist's
imho schon etwas einfacher Ähnlichkeit zu definieren. Da reicht es ja schon fast, Kanalweise mit etwas Toleranz heranzugehen. Beim H-Kanal würde diese dann recht klein ausfallen, bei S und V/L ggf. etwas größer. Was jetzt aber wirklich ähnlich ist, hängt einzig und allein von deiner persönlichen Einschätzung ab. Der Begriff ist nicht eindeutig definiert.
Für die Durchschnitte würde es sich hier lohnen, die
HSV Werte als Koordinaten innerhalb der (Doppel-)Pyramide aufzufassen, die diese Räume aufspannen. Schau dir einfach mal den Wikipedia Artikel zu
HSV an, dann wird schnell deutlich was ich meine. (Man kann theoretisch auch ganz naiv kanalweise mitteln wie bei
RGB, hat aber bei H das Problem des Nulldruchgangs - es ist ja eigentlich ein Winkel.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)