2010-09-07 13 views

Odpowiedz

14

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.

+0

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

+2

Świetna odpowiedź. Sprawdź także jednostkę GraphUtil w VCL: ColorAdjustLuma i inne funkcje. –

+2

I ColorRGBToHLS i jego odwrotność w tej samej jednostce. –

8

Zajrzyj do HSV colour space. Za jego pomocą można uzyskać różne odcienie lub odcienie, począwszy od danego koloru. Istnieje strona z kodem Pascal/Delphi do konwersji między RGB i HSV pod numerem efg's Computer Lab.

3

Roderick, linki @mghie są świetne do rozpoczęcia, dodatkowo wypróbuj bibliotekę Delphi Colorlib, która umożliwia konwersję między modelami kolorów, a także narzędziami konwersji kolorów HTML. jest bardzo kompletny, zawiera pełny kod źródłowy i bezpłatne;).

sprawdź wersję demonstracyjną application, na tym obrazie widać niebieską paletę wygenerowaną przy użyciu tej biblioteki.

alt text

Powiązane problemy