B. Jackowski: Grafika dyskretna 13
W źródłach programu Ghostscript można znaleźć inny sposób przeliczania: r = (1 — c) x (1 — k)
(3.3)
Trudno powiedzieć, który ze wzorów jest lepszy. Z pewnością zależy to od konkretnego przypadku. Komuś, kto nie chce zdać się bezmyślnie na efekty działania programów graficznych, które takiej zamiany dokonują na zasadzie „yes-no”, pozostaje tylko metoda prób i błędów.
Znacznie trudniejsza jest zamiana RGB —> CMYK. W tym przypadku co lepsze programy graficzne nie poprzestają na wyświetleniu okienka „yes-no”, lecz zostawiają użytkownikowi pole manewru. Rzecz w tym, że zasadniczo arbitralne jest określenie ilości czerni. POSTSCRIPT pozwala na zdefiniowanie dwóch wielkości, mianowicie BG (black generation) i UCR (undercolor removal). Pierwsza z nich określa, jaka część barwy ma zostać „przesunięta” do czerni, druga - redukcję ilości farby nakładanej w danym punkcie, gdyż papier źle znosi jej nadmiar.
Podręcznik Adobe ([4], s. 306) podaje następujący przepis na wyznaczanie współrzędnych CMYK, wykorzystujący funkcje UCR i BG:
(3.4)
c = min(l, max(0,1 — r — UCR(/c'))) m = min(l, max(0,1 — g — UCR(fc'))) y — min(l, max(0,1 — b — UCR (k'))) k = min(l, max(0, BG(k')))
gdzie k' = 1 — min(l — r, 1 — g, 1 — b). Oczywiście nie jest to jedyna możliwa formuła, na przykład źródła Ghostscript-a zawierają alternatywny przepis (znaczenie k' jest takie, jak poprzednio):
k = min(l, max(0, BG(/c')))
c = min 0,1 —
m = min 0,1 —
y = min 0,1 —
r
9
b
1 - UCR(k')
1 - UCR(k')
1 - UCR(k1)
(3.5)