Spis treści Spis treści...................................... Model CMYK.................................. Sześcian CMY...............................2. Konwersje RGB, CMY i CMYK.................... 2.2.. Plik cmy2rgb.cpp........................ 3.2.2. Plik cmy2cmyk.cpp....................... 3.2.3. Plik rgb2cmy.cpp........................ 4.2.4. Plik cmyk2cmy.cpp....................... 4.3. Separacja barw CMYK......................... 5.3.. UCR............................... 6.3.2. GCR............................... 7.3.3. TIL................................ 7.3.4. BIL................................ 7 Literatura..................................... 9
. Model CMYK Model barw CMYK (ang. Cyan, Magenta, Yellow, Black) czyli niebieskozielony, purpurowy, żółty i czarny, stosowany jest w poligrafii w urządzeniach drukujących a także w popularnych drukarkach atramentowych i laserowych. Ostatnia barwa stosowana jest w celu polepszenia jakości wydruków, bowiem z uwagi na niedoskonałość farb drukarskich, tonerów i pigmentów drukarek zmieszanie barw CMY nie daje pełnej czerni. Barwy CMY powstają poprzez odjęcie od światła białego kolorów bazowych w modelu RGB czyli w procesie mieszania subtraktywnego. Niebieskozielona jest dopełnieniem barwy czerwonej, purpura zieleni, a barwa żółta jest dopełnieniem niebieskiej. Efekt zmieszania kolorów podstawowych CMY przedstawia rysunek. Rysunek. Model kolorów CMYK Jak widać na powyższym rysunku zmieszanie barwy niebieskozielonej i purpury daje niebieski, zmieszanie purpury i żółtego barwę czerwoną, a zmieszanie żółtego i niebieskozielonego daje barwę zieloną... Sześcian CMY Przy opisie modelu RGB został zaprezentowany sześcian kolorów RGB. Wystarczy ów sześcian odwrócić, aby uzyskać analogiczny sześcian ale modelu CMY. Sześcian ten przedstawia rysunek 2.
. Model CMYK 2 Rysunek 2. Sześcian kolorów CMY.2. Konwersje RGB, CMY i CMYK Do celów prezentacji wzorów na konwersję załóżmy, że każda ze składowych przyjmuje wartości z przedziału [0, ]. Konwersję CMY na RGB opisuje równanie R G B = C M Y Konwersja w drugą stronę, tj. RGB na CMY przedstawia równanie C M Y = R G B
. Model CMYK 3 Natomiast przejście z modelu CMY na CMYK, gdzie K = min(c, M, Y ), opisuje równanie C C min(c, M, Y ) M Y = M min(c, M, Y ) Y min(c, M, Y ) K min(c, M, Y ) Alternatywne wzory konwersji pomiędzy CMY i CMYK przedstawia praca [3] C min(c,m,y ) C min(c,m,y ) M M min(c,m,y ) Y = min(c,m,y ) Y min(c,m,y ) min(c,m,y ) K min (C, M, Y ) C M Y = min (, C ( K) + K) min (, M ( K) + K) min (, Y ( K) + K) Przedstawione powyżej wzory zostały zaimplementowane w następujących plikach źródłowych: cmy2rgb.cpp, cmy2cmyk.cpp, rgb2cmy.cpp i cmyk2cmy.cpp..2.. Plik cmy2rgb.cpp / ( c ) Janusz Ganczarski ( Power ) h t t p : / /www. j a n u s z g. hg. p l JanuszG@enter. n e t. p l / // konwersja CMY > RGB // z a k r e s y zmiennych // c [ 0, ] m[ 0, ] y [ 0, ] // r [ 0, ] g [ 0, ] b [ 0, ] void cmy2rgb ( double c, double m, double y, double &r, double &g, double &b ) r = c ; g = m; b = y ;.2.2. Plik cmy2cmyk.cpp / ( c ) Janusz Ganczarski ( Power ) h t t p : / /www. j a n u s z g. hg. p l JanuszG@enter. n e t. p l / #include < a l g o r i t h m > #i f n d e f RWSTD NO NAMESPACE using namespace std ;
. Model CMYK 4 #endif // konwersja CMY > CMYK // z a k r e s y zmiennych // c [ 0, ] m [ 0, ] y [ 0, ] // c2 [ 0, ] m2 [ 0, ] y2 [ 0, ] k [ 0, ] void cmy2cmyk ( double c, double m, double y, double &c2, double &m2, double &y2, double &k ) k = min ( min ( c, m), y ) ; c2 = c k ; m2 = m k ; y2 = y2 k ; // k o n w e r s j a CMY > CMYK ( d r u g i a l g o r y t m ) // z a k r e s y zmiennych // c [ 0, ] m [ 0, ] y [ 0, ] // c2 [ 0, ] m2 [ 0, ] y2 [ 0, ] k [ 0, ] void cmy2cmyk2 ( double c, double m, double y, double &c2, double &m2, double &y2, double &k ) k = min ( min ( c, m), y ) ; i f ( k! = ) c2 = ( c k ) / ( k ) ; m2 = (m k ) / ( k ) ; y2 = ( y2 k ) / ( k ) ; e l s e c2 = m2 = y2 = 0 ;.2.3. Plik rgb2cmy.cpp / ( c ) Janusz Ganczarski ( Power ) h t t p : / /www. j a n u s z g. hg. p l JanuszG@enter. n e t. p l / // konwersja RGB > CMY // z a k r e s y zmiennych // c [ 0, ] m[ 0, ] y [ 0, ] // r [ 0, ] g [ 0, ] b [ 0, ] void rgb2cmy ( double r, double g, double b, double &c, double &m, double &y ) c = r ; m = g ; y = b ;.2.4. Plik cmyk2cmy.cpp / ( c ) Janusz Ganczarski ( Power ) h t t p : / /www. j a n u s z g. hg. p l JanuszG@enter. n e t. p l / #include < a l g o r i t h m > #i f n d e f RWSTD NO NAMESPACE using namespace std ; #endif // konwersja CMYK > CMY // z a k r e s y zmiennych // c [ 0, ] m [ 0, ] y [ 0, ] k [ 0, ] // c2 [ 0, ] m2 [ 0, ] y2 [ 0, ]
. Model CMYK 5 void cmyk2cmy ( double c, double m, double y, double k, double &c2, double &m2, double &y2 ) c2 = min (, c ( k ) + k ) ; m2 = min (, m ( k ) + k ) ; y2 = min (, y ( k ) + k ) ;.3. Separacja barw CMYK Zagadnienie separacji barw CMYK jest jednym z podstawowych problemów poligrafii. Nakładanie barw CMYK w procesie druku podlega pewnym ograniczeniom. Przykładowo nałożenie na siebie maksymalnych warstw farb wydłuża czas ich schnięcia i może doprowadzić do przejścia farby na spodnia stronę arkusza papieru (tzw. efekt odciągania). Oczywiście prowadzi to do obniżenia jakości i szybkości druku. Idea separacji barw jest stosunkowo prosta. Korzystając z faktu, że składowa K jest składową achromatyczną, możemy odjąć z każdej składowej CMY taką samą wartość (ilość farby) i zastąpić ją odpowiednią ilością czerni. Oczywiście maksymalny stopień cofnięcia nie może przekroczyć wartości tej składowej CMY, która ma najmniejszą wartość. Jednak osiągnięty tym sposobem efekt zmniejszenia ilości farby i zwiększenia szybkości druku i może zostać okupiony zmianą barwy. Weźmy przykładowy brąz, w którym składowe CMY mają wartości: 40%, 60% i 00% (patrz tabela ). Najmniejszy udział ma składowa C, stąd spróbujemy zmniejszyć udział wszystkich składowych o 40% i zastąpić je składową K o wartości 40% (patrz tabela 2). Opisana zmiana spowodowała C M Y K barwa 40 0 0 0 0 60 0 0 0 0 00 0 40 60 00 0 Tabela. Brąz C:M:Y = 40:60:00 znaczne zmniejszenie ilości farby z 200% do 20% ale niestety brąz uzyskany w ten sposób zmienił się w stosunku do wzorca. W praktyce nie stosuje się maksymalnych cofnięć i przyjmuje się, że cofnięcie nie powinno przekroczyć 50% udziału barwy najsłabszej. Tabela 3 przedstawia optymalne cofnięcie barw (C:M:Y:K = 20:40:80:20), które jest praktycznym kompromisem pomiędzy odwzorowaniem barw a wymogami technologicznymi procesu druku.
. Model CMYK 6 C M Y K barwa 0 0 0 0 0 20 0 0 0 0 60 0 0 0 0 40 0 20 60 40 Tabela 2. Brąz C:M:Y:K = 0:20:60:40 C M Y K barwa 20 0 0 0 0 40 0 0 0 0 80 0 0 0 0 20 20 40 80 20 Tabela 3. Brąz C:M:Y:K = 20:40:80:20 Jak widać poprawne cofnięcie barw nie jest zagadnieniem łatwym. Poniżej przedstawione są dwa podstawowe algorytmy stosowane w tej operacji - UCR i GCR..3.. UCR W algorytmie UCR (ang. Under Colour Removal) czerń ma charakter szkieletowy, tzn. pojawia się w obszarze 3 / 4 i 4 / 4 tonów. Szarość odtwarzana Rysunek 3. Algorytm UCR jest jedynie przy pomocy czarnej barwy. Aby czarna farba nie powodowała
. Model CMYK 7 brudnego wyglądu barw, algorytm UCR stosuje się do określonego poziomu neutralnej szarości (50% - 60%). Algorytm UCR ilustruje rysunek 3..3.2. GCR Algorytm GCR (anf Grey Componnent Replacement) generuje czerń w większym zakresie, zaczynając od / 4 tonów. Z tego powodu zwiększone jest prawdopodobieństwo zabrudzenia barw na wydruku, szczególne w jasnych partiach obrazu. Ponadto uzyskany efekt podbicia ciemnych partii ob- Rysunek 4. Algorytm GCR razu (tzw. cieni) może spowodować stratę szczegółów rysunkowych. Wszystko to sprawia, że GCR wymaga sporej wiedzy i doświadczenia. Algorytm GCR ilustruje rysunek 4..3.3. TIL Z zagadnieniem separacji wiąże się współczynnik TIL (ang. Total Ink Limit) czyli całkowity limit atramentu (farby) jaki można nałożyć w danym urządzeniu drukującym na danym rodaju papieru. Przyjmuje się następujące wartości TIL: 280% - maszyny rotacyjne, 320% - maszyny arkuszowe, 280% - papier gazetowy, 320% - papier powlekany..3.4. BIL Drugi wskaźnik stosowany w separacji to BIL (ang. Black Ink Limit określający maksymalny poziom czerni jaką można dodać. Standardowo jego wartość wynosi 00%. Zmniejszenie poziomu współczynnika BIL pozwala na podkolorowanie cieni barwami CMY i uzyskanie właściwego efektu w druku
. Model CMYK 8 obrazów z głębokimi cieniami - czyli szczegółami niewiele różniącymi się od czerni.
Literatura 9 Literatura [] SEII EM-MI: Teoria postrzegania barw i wstęp do grafiki komputerowej. http: //semmix.pl/color/ [2] Michał Jankowski: Elementy grafiki komputerowej, Wydawnictwa Naukowo-Techniczne, Warszawa 990 [3] Alan Roberts, Adrian Ford: Colour Space Conversions FAQ [4] Włodzimierz Pastuszak: Barwa w grafice komputerowej. Wydawnictwo Naukowe PWN, Warszawa 2000