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.
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
Große Antwort. Überprüfen Sie auch die GraphUtil-Einheit in der VCL: ColorAdjustLuma und andere Funktionen. –
Und ColorRGBToHLS und seine Inverse in der gleichen Einheit. –