Wygląda na to, że po prostu przybierały ten sam odcień (podstawowy kolor) i zmieniły jasność w górę iw dół. Można to zrobić z łatwością dzięki transformacjom HSL lub HSV. Sprawdź, czy w Wikipedii znajdują się przestrzenie barw HSL i HSV, aby zrozumieć teorię.
Podstawowy pomysł: komputery reprezentują kolor z mieszanką intensywności czerwonej, zielonej intensywności i intensywności niebieskiej, zwanej RGB, ponieważ tak wygląda ekran na ekranie. HSL (odcień, nasycenie, jasność) i HSV (odcień, nasycenie, wartość) to dwa alternatywne modele reprezentujące kolory, które są bardziej intuicyjne i bliższe temu, jak ludzie mają skłonność do myślenia o tym, jak wyglądają kolory.
Odcień jest podstawowym kolorem, reprezentowanym (mniej więcej) jako kąt na kole kolorów. Nasycenie jest wartością liniową, od 0 (szary) do 255 (jasny, żywy kolor). I Jasność/Wartość reprezentują jasność, od 0 (czarny) do 100 (biały).
Algorytmy przekształcania z RGB -> HSL i HSL -> RGB (lub HSV zamiast HSL) są dość proste. Spróbuj przekształcić kolor na HS *, dostosowując jasność i przekształcając z powrotem. Biorąc kilka różnych wartości jasności od niskiego do wysokiego i układając je jako kliny na wykresie kołowym, można dość łatwo powielić to zdjęcie.
Dzięki Mason, jak pan sugeruje, trzymałem HS stała i sprawiają, że L jest różna. Dostałem wynik, jaki chciałem. Dziękuję mghie za link. Użyłem algorytmu efg do konwersji hsv na rgb. – Rick
Świetna odpowiedź. Sprawdź także jednostkę GraphUtil w VCL: ColorAdjustLuma i inne funkcje. –
I ColorRGBToHLS i jego odwrotność w tej samej jednostce. –