2010-09-07 8 views

Antwort

14

Das sieht für mich aus, als hätten sie nur den gleichen Farbton (Grundfarbe) und die Helligkeit auf und ab gedreht. Dies kann leicht mit einer HSL- oder HSV-Transformation durchgeführt werden. Überprüfen Sie Wikipedia für HSL- und HSV-Farbräume, um ein gewisses Verständnis der beteiligten Theorie zu erhalten.

Grundidee: Computer repräsentieren Farbe mit einer Mischung aus roter Intensität, grüner Intensität und blauer Intensität, genannt RGB, weil der Bildschirm so die Farbe anzeigt. HSL (Farbton, Sättigung, Helligkeit) und HSV (Farbton, Sättigung, Wert) sind zwei alternative Modelle zur Darstellung von Farben, die intuitiver und näher an der Art und Weise sind, wie Menschen dazu neigen, über das Aussehen von Farben nachzudenken.

Der Farbton ist die Grundfarbe, die (mehr oder weniger) als Winkel auf einem Farbrad dargestellt wird. Sättigung ist ein linearer Wert von 0 (grau) bis 255 (helle, leuchtende Farbe). Und Helligkeit/Wert steht für Helligkeit von 0 (schwarz) bis 100 (weiß).

Die Algorithmen zur Umwandlung von RGB -> HSL und HSL -> RGB (oder HSV statt HSL) sind ziemlich einfach. Versuchen Sie, Ihre Farbe in HS * umzuwandeln, die Helligkeit anzupassen und zurück zu transformieren. Indem Sie mehrere verschiedene Helligkeitswerte von niedrig nach hoch nehmen und sie als Keile in einem Kreisdiagramm anordnen, können Sie das Bild ziemlich einfach duplizieren.

+0

Dank Mason, wie Sie vorgeschlagen, hielt ich die HS konstant und machen die L variiert. Ich habe das Ergebnis, das ich wollte. Danke Mghie auch für den Link. Ich benutzte efgs Algorithmen, um hsv in rgb umzuwandeln. – Rick

+2

Große Antwort. Überprüfen Sie auch die GraphUtil-Einheit in der VCL: ColorAdjustLuma und andere Funktionen. –

+2

Und ColorRGBToHLS und seine Inverse in der gleichen Einheit. –

8

Schauen Sie in die HSV colour space. Mit ihr können Sie ausgehend von einer bestimmten Farbe verschiedene Farbtöne oder Farbtöne erzeugen. Es gibt eine Seite mit Pascal/Delphi-Code für die Konvertierung zwischen RGB und HSV unter efg's Computer Lab.

3

Roderick, die @mghie Links sind großartig zu starten, zusätzlich versuchen Sie die Colorlib Delphi-Bibliothek, mit der Sie zwischen Farbmodellen sowie HTML-Farbkonvertierungsprogrammen konvertieren können. ist sehr komplett, voller Quellcode enthalten und Freeware;).

Überprüfen Sie die Demo application, in diesem Bild sehen Sie eine blaue Palette mit dieser Bibliothek generiert.

alt text

Verwandte Themen