formátu PDF

Transkript

formátu PDF
Grafika v UNIXu
Stanislav Brabec ([email protected])
Na základě stejnojmenného seriálu na serveru Root (http://www.root.cz/)
do knižní podoby převedl Slávek Banko ([email protected])
2001–2002
Obsah
1 Přehled softwaru
11
1.1
Převodníky a knihovny grafických formátů . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.2
Prohlížeče . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.3
Bitmapové editory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.4
Vektorové editory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.5
Skenování a digitální fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.6
Tisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.7
Písma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.8
Barvy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.9
3D grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.10 Typografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2 Než začneme skenovat
15
2.1
Gama křivka – základ úspěchu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.2
K čemu je to v praxi? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.3
Ukázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.4
Další čtení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3 Co (ne)umí skener
19
3.1
Výběr skeneru
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2
Základní parametry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3
Problémy skenerů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.4
Testy kvality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.5
Výběr rozlišení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
4 Skenujeme
23
4.1
XSane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4.2
Výběr rozlišení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.3
Výběr rozsahu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.3.1
Výběr rozsahu po barvách, nebo výběr spřažený . . . . . . . . . . . . . . . . . . . .
24
4.3.2
Automatický výběr rozsahu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3
4
OBSAH
4.3.3
Výběr rozsahu dle histogramu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.3.4
Ruční výběr rozsahu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.4
Výběr gama korekce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.5
Výběr bitové hloubky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.6
Ukázky úprav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.7
Výběr výřezu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
5 Tipy a triky pro skenování
29
5.1
Rozbíjíme rastr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
5.2
Čistit nebo retušovat? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.3
Newtonovy kroužky a přilepené fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.4
Černá a bílá lepenková podložka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.5
Boj s neostrostí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.5.1
Jednoduché doostření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.5.2
Maskování neostrosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.5.3
Nelineární filtr – zvýraznění hran . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.5.4
Iterativní metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.5.5
Analytické metody a doostření neuronovou sítí . . . . . . . . . . . . . . . . . . . . .
32
5.5.6
Ukázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
Pérovky v šedích, černobíle v barvách . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.6
6 Barevná kalibrace skenerů, OCR
6.1
6.2
37
Barevná kalibrace skeneru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
6.1.1
Ukázky práce s barevným profilem skeneru . . . . . . . . . . . . . . . . . . . . . . .
38
6.1.2
Studiové skenery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
6.1.3
Malý skript na závěr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
OCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
7 Tiskárny, tiskový proces
43
7.1
Počítačové tiskárny a digitální tiskové stroje . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
7.2
PostScriptový paradox proprietárních operačních systémů . . . . . . . . . . . . . . . . . . .
44
7.3
Ofsetový tisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
7.4
Sítotisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
7.5
Hlubotisk, litografie, ražba, tampónový tisk . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.6
Copy printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.7
Příprava průhledné předlohy pro ofsetový tisk . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.8
Tiskové značky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.9
Archová montáž
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OBSAH
5
8 PostScript
49
8.1
PostScript Level 1, PostScript Level 2, PostScript LL3 . . . . . . . . . . . . . . . . . . . . .
50
8.2
Co PostScript neumí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
8.3
PostScript a Ghostscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
8.4
Strukturovaný PostScript, DSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
9 Postscriptové formáty a písma
53
9.1
EPS, EPSF, EPSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
9.2
PPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
9.3
AFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
9.4
Formáty písem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
9.4.1
Type 0 (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
9.4.2
Type 1 (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
9.4.3
Type 2 (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
9.4.4
Type 3 (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
9.4.5
Type 9, 10, 11, 32 (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
9.4.6
Type 14 (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
9.4.7
Type 42 (3) a TrueType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
9.4.8
Intellifont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
9.4.9
METAFONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
Krátké příklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
9.5
10 Řešení problémů s PostScriptem
61
10.1 Není vidět náhled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
10.2 EPS nelze vložit do TEXu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
10.3 Aplikace při vkládání EPS hlásí, že nemá písmo, přestože v EPS souboru písmo je . . . . .
62
10.4 Obrázky TIFF s kompresí CCITT G3/G4 nefungují . . . . . . . . . . . . . . . . . . . . . .
62
10.5 Převod RGB–CMYK je nepřesný . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
10.6 Nesprávná délka hlavičky filtru s obrazovými daty . . . . . . . . . . . . . . . . . . . . . . .
63
10.7 Příkaz nastavení stránky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
10.8 Progresivní jpeg dct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
10.9 Postscriptové soubory mají po spojení špatná písma . . . . . . . . . . . . . . . . . . . . . .
63
10.10Špatná informace v DSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
10.11Falešný strukturovaný PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
10.12Interpolace nefunguje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
10.13PDF nejde vytisknout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
10.14Obrázek i písmo jsou kvalitní na obrazovce, ale ne při tisku . . . . . . . . . . . . . . . . . .
64
10.15Porušení podmínek operátoru seac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
10.16Písmo spadlo, v Ghostscriptu přitom funguje . . . . . . . . . . . . . . . . . . . . . . . . . .
65
10.17Poděkování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
6
OBSAH
11 Postscriptové omyly a problémy s písmy
67
11.1 Časté omyly o PostScriptu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
11.1.1 PDF dává méně kvalitní výstup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
11.1.2 Znalost PostScriptu mi v dnešní době k ničemu nebude . . . . . . . . . . . . . . . .
67
11.1.3 PostScript je „ukecanýÿ jazyk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
11.1.4 Ghostscript a Stuffit jsou od stejné firmy . . . . . . . . . . . . . . . . . . . . . . . .
68
11.2 Závady písem a znakových sad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
11.2.1 Závadná diakritika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
11.2.2 Špatné podřezávání (kerning) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
11.2.3 Chybějící znaky
69
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.4 Chybí svaznice fi, fl, ffi, ffl
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
11.2.6 Chybí ŽŠŤžšť . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
11.2.7 Chybí Ůů a všechna písmena s háčky, příp. jsou znaky náhodně umístěné . . . . . .
70
11.2.8 Chybí Ůů a všechna písmena s háčky kromě ŽŠžš
70
11.2.5 Chybí ^ť
. . . . . . . . . . . . . . . . . . .
12 Vektorová grafika
71
12.1 Převodníky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
12.2 Vektorové editory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
12.3 Neinteraktivní vektorové editory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
12.3.1 METAPOST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
12.3.2 pstricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
12.3.3 Gnuplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
13 Interaktivní vektorové editory
77
13.1 Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
13.2 Sodipodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
13.3 Kontour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
13.4 StarDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
13.5 GYVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
13.6 Xfig a Figurine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
13.7 GIMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
13.8 ImPress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
13.9 Scribus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
13.10Dia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
14 Výstupní rozlišení a půltónování
83
14.1 Výstupní rozlišení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
14.2 Rozlišení a PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
14.3 Vyhlazování (antialiasing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
14.4 Rozklad obrazu (půltónování) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
14.5 Možné postupy rozkladu obrazu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
OBSAH
7
15 Tiskové rastry
87
15.1 Rastry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
15.2 Úhel rastru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
15.3 Omezení počtu šedí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
15.4 Fyzikální a digitální frekvence rastru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
15.5 Rastry a PostScript
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
15.6 Příklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
16 Přenosové funkce, výroba PDF a postscriptové triky
93
16.1 Převod PostScriptu na PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
16.2 PostScriptové triky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
16.2.1 Vyrastrování do souboru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
16.2.2 Word2eps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
16.2.3 Bitová maska v TEXu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2.4 Jednoduchá separace do dvou barev . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
17 Bitmapové formáty TIFF a JPEG
96
97
17.1 TIFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
17.1.1 TIFF a komprese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
17.2 JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
17.2.1 Opakovaná komprese JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
18 Další bitmapové formáty
101
18.1 GIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
18.2 PNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
18.2.1 MNG a JNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
18.3 BMP a ICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
18.4 JBIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
18.5 EPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
18.6 Speciální formáty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
18.7 Komprese a velikost souboru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
19 Malinová nebo čokoládová?
105
20 Všestranné razítko
111
20.1 Ukázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
21 Barevné úpravy obrázků
115
21.1 Nástroje, jež pracují se všemi komponentami najednou . . . . . . . . . . . . . . . . . . . . . 115
21.2 Nástroje, jež pracují s každou komponentou zvlášť . . . . . . . . . . . . . . . . . . . . . . . 115
21.3 Nástroje, jež pracují s barvami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
21.4 Intuitivní barevné úpravy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
21.5 Příklad
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8
OBSAH
22 Úvod do teorie barev
119
22.1 Spektrometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
22.2 Barevná teplota a tepelné vyzařování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
22.3 Kolorimetrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
22.4 Vztah mezi aditivními a subtraktivními systémy . . . . . . . . . . . . . . . . . . . . . . . . 121
22.5 Další základní barvy? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
22.6 Vhodné osvětlení aneb kdy kolorimetrie nestačí? . . . . . . . . . . . . . . . . . . . . . . . . 122
22.7 Další odkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
23 Přesné barvy
125
23.1 Přímé a kompozitní barvy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
23.2 Barevné vzorníky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
23.3 Fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
23.4 Barevná kalibrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
23.5 Barevný profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
23.6 Druhy barevných profilů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
23.7 Použití barevných profilů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
24 Barevná kalibrace vstupních zařízení
129
24.1 Pomůcky pro barevnou kalibraci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
24.1.1 Denzitometr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
24.1.2 Barevná kalibrační tabulka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
24.1.3 Zásadní požadavek kalibrace – vypnout veškerou automatiku . . . . . . . . . . . . . 130
24.2 Co je to věrná reprodukce? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
24.3 Vstupní zařízení a jejich profily . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
24.3.1 Skenery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
24.3.2 Fotoaparáty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
24.3.3 Čočkový efekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
24.3.4 Digitální kamery a fotoaparáty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
25 Kalibrace monitorů a barevný tisk
133
25.1 Výstupní zařízení a jejich profily . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
25.1.1 Monitory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
25.1.2 Kalibrační sondy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
25.1.3 Barevný tisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
25.1.4 Analytická separace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
25.1.5 Úroveň černé a celkové krytí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
25.1.6 Kalibrace barevného tisku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
25.1.7 Barevný nátisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
25.1.8 Tisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
25.1.9 Kalibrace osvitových jednotek a nátisků . . . . . . . . . . . . . . . . . . . . . . . . . 136
25.1.10 Jiné barevné systémy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
OBSAH
26 Doplnění pojmů
9
137
26.1 Barevné prostory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
26.2 Percentuální uniformita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
26.3 Gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
26.4 Gamut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
26.5 Bílý bod, černý bod a úrovně . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
26.6 Iluminant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
26.7 Barevná teplota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
26.8 Vizuální posouzení a barevná teplota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
26.9 Převodní tabulky (LUT) barevného profilu . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
26.10Zobrazovací záměr – rendering intent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
26.11Korekce chyb při tvorbě barevných profilů . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
26.12Duplexní tisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
26.13Bichromie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
27 Základní 3D algoritmy
141
27.1 3D na 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
27.2 Popis tělesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
27.3 Viditelnost objektů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
27.4 Metody zobrazování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
28 Fotorealistické zobrazení
145
28.1 Modely pro šíření, odraz a lom světla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
28.2 Metody sledování paprsku (ray tracing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
28.3 Radiační princip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
28.4 Přístroje pro 3D grafiku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
29 Fraktály, animace, holografie, 3D galerie
151
29.1 Fraktály v grafice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
29.2 Ambientní osvětlení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
29.3 Animace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
29.4 Dynamicky modelované objekty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
29.5 Urychlující metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
29.6 Holografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
29.7 Závěr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
30 (Ne)vážně o grafice
157
30.1 . . . tak musí uhnout hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
30.2 Jak vypadá nejlákavější hamburger? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
30.3 S kým fotografovali ten nový letní model? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
30.4 Co znamenají podivné značky na reklamních dopisech? . . . . . . . . . . . . . . . . . . . . . 158
30.5 Napsal jsem to na počítači! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
30.6 A to koště bych prosil dát pryč . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
10
OBSAH
Seznam obrázků
161
Odkazy
167
Kapitola 1
Přehled softwaru
Když se řekne UNIX, málokomu se vybaví grafické pracoviště, a to přesto, že první grafické stanice byly
UNIXové. Od té doby však uběhlo mnoho času.
Na začátku našeho seriálu se porozhlédneme po tom, co možná najdete na disku nebo ve své distribuci,
zcela určitě pak na Internetu.
Ačkoliv by se mohlo zdát, že svobodných programů pro grafiku na UNIXu není až tak mnoho, opak je
pravdou. Od neumělých pokusů, které zapadly dříve, než stačily dosáhnout verze 0.01-alpha, až po téměř
dokonalé nástroje, za které by se nemusela stydět žádná softwarová firma. (Však i D. E. Knuth, autor TEXu
prohlásil: „Kdyby se TEX prodával, byl by velmi drahý.ÿ O GIMPu lze říci totéž.) K práci nepotřebujeme
jen obrovské balíky s tisícem funkcí – stejně dobře nám poslouží i jednoduché nástroje, které svou jedinou
funkci zvládají dokonale.
V našem seriálu o grafice se budeme věnovat pouze programům s otevřeným kódem. S jedinou výjimkou
se v následujícím seznamu také jedná o svobodný software.
Protože pod slovem grafika si můžeme představit leccos, začneme poněkud nudným přehledem části
toho, co z jejích různých oblastí lze na webu najít. Zdaleka ne všechny grafické nástroje potřebují okna –
příkazová řádka je mocným nástrojem zvlášť pro dávkové zpracování obrázků.
1.1
Převodníky a knihovny grafických formátů
Má-li počítač zobrazovat nějakou grafiku, musí obsahovat grafickou kartu a obslužný software (X-server ).
Dalšími prvky v pozadí jsou knihovny a převodníky grafických formátů.
Snad prvním grafickým převodníkem je pbmplus[45] od Jefa Poskanzera. Grafické formáty sice hloupé
a neúsporné (pbm + pgm + ppm = pnm – Portable aNy Map), ale mimořádně jednoduché, stejně jako
možnost zpracování obrázků rourou z příkazové řádky, byly základem úspěchu tohoto balíku. Jeho poslední
verze sice vyšla před deseti lety, ale jeho následníka, NetPBM[41], najdete zřejmě v každé distribuci.
Převzal veškerý kód (i chyby) z pbmplus a přidal vše, co napsali autoři z různých konců Sítě (= světa).
Umí převést různé grafické formáty z/do pnm a obsahuje množství filtrů.
Jeho novějším následníkem je ImageMagick[87]. Univerzální grafický formát nahradil aplikačním rozhraním, tzv. delegáty. Uživatel má k dispozici jen jeden konvertor (convert), který ovládá všechny formáty.
Na rozdíl od NetPBM neztratí ImageMagick speciální informace v souboru (rozlišení, barevný profil, hodnota gama, průhlednost apod.). K tomu přibyly interaktivní grafický editor/převodník (display), několik
dalších převodních a kombinačních programů a v neposlední řadě i perlové aplikační rozhraní. Za své robustní rozhraní platí větší paměťovou a časovou náročností v porovnání s NetPBM.
Práci s populárním ztrátovým grafickým formátem JPEG[94] (Joint Photographic Experts Group) zajišťuje v UNIXu téměř výhradně stejnojmenná knihovna[86]. K ní jsou přibaleny programy cjpeg a djpeg
pro převod do pnm (jak jinak) a programy pro práci s jpeg soubory. (Při vývoji programu Netscape[112]
11
12
KAPITOLA 1. PŘEHLED SOFTWARU
byly některé části této knihovny urychleny přepsáním do MMX kódu, přestože je však tento kód pod licencí
GPL, zatím jsem tyto úpravy nikde samostatně na síti neviděl.) Již méně populární je stejně zajímavý ztrátový grafický formát JBIG[93] pro čárovou grafiku. Knihovna pro práci s ním viz [4]. Pokud vás zajímá
podpora nejnovější verze formátu JPEG2000[92], musíte se poohlédnout po projektu Jasper[69]. Bezztrátovou JPEG kompresi LJPEG (DICOM) pak zpracuje například knihovna jpeg se záplatami z ImageMagick u[3]. Pokud se budeme zabývat typografií, zřejmě se nám hodí i bezztrátový převod formátu JPEG
do PostScriptu pomocí prográmku jpeg2ps[117].
Relativně novým standardem webové grafiky je PNG[103] (Portable Network Graphics). Oproti formátu
GIF (viz dále) nabízí licenční svobodu, plnou barevnost, nezávislost na nastavení gama křivky a kvalitní
bezztrátovou kompresi. Jeho mladším bratříčkem je Multiple-image Network Graphics[102], což je
obdoba PNG pro animovanou grafiku. Obě specifikace zároveň obsahují i referenční knihovnu, podpora pro
obě je zahrnuta v projektu Mozilla[110]. Ke knihovně PNG nejsou přiloženy žádné pomocné aplikace, a tak
za všechny, co jich na webu je, uvedu jen pnmtopng[104].
Další populární grafický formát TIFF[5] (Tagged Interchange File Format, další specifikace formátu
viz [32], [1] a [33]) v UNIXu opět zpracovává téměř výhradně jediná knihovna libtiff [105]. K ní je opět
přibaleno několik nástrojů a převodníků. Pokud je chcete používat profesionálně, aktualizujte na verzi
3.5.7 (starší verze tiff2ps měla závažné problémy, zvlášť na PostScriptových interpretrech od firmy Adobe).
Ostudná kauza s firmou Unisys způsobila, že byl z balíku oddělen dodatek pro „neamerické občanyÿ jménem
tifflzw. Kdo sleduje dění kolem patentových zákonů, jistě tuší, co je obsahem tohoto dodatku. Pokud nejste
zrovna v USA, můžete jej k libtiff připojit bez obavy z tučné pokuty (zatím).
Zmíněná kauza zasáhla ještě mnohem citelněji software pro práci s formátem GIF. Když jsem hledal
odkazy na knihovnu libgif, která byla ještě před pár lety běžně dostupná, dostal jsem se po pár přesměrováních na stránku (i v USA) právně čistého projektu libungif [37]. Ten ovšem GIF nezapíše . . . Nějakým
zázrakem libgif zůstala ještě na archivech Metalab[12] (prohledávač od Unisysu zřejmě neumí FTP).
Formáty PostScript a PDF [34] nejsou jen grafickými formáty, jsou to jazyky pro popis stran (alespoň
PostScript si tento název zaslouží). Při profesionální práci s tištěnou grafikou se jim nevyhneme. Jsou
to jediné formáty svého druhu, pracují s nimi tiskárny, osvitové jednotky, barevné plotry i některé Xservery. V zpracování těchto formátů vyniká Ghostscript[77], který nechybí snad na žádném UNIXovém
počítači. Užitečné jsou též psutils[67], sada jednoduchých nástrojů pro úpravy PostScriptových souborů
(přestránkování, seskupování a výběr stran apod.).
Z převodníků a knihoven grafických formátů ještě stojí za zmínku alespoň libwmf [152] pro formát
Windows MetaFile. Tím jsme sice zdaleka nevyčerpali všechny, ale pro začátek si vystačíme.
1.2
Prohlížeče
Prohlížečů je dnes na Internetu obrovské množství. Každá grafická nadstavba obsahuje minimálně jeden.
Za všechny zmíním jeden z prvních kvalitních prohlížečů, a sice sharewarový xv[150] od Johna Bradleyho.
Přestože od vydání jeho zatím poslední verze uplynulo již sedm let, patří dodnes mezi špičku. Jeho návrh je
přísně ergonomický, skvěle jsou vyřešeny ořezávání, zvětšování, a pro svůj účel je vizuální prohlížeč adresářů
mnohonásobně rychlejší než většina univerzálních nástrojů. To z xv činí užitečný nástroj na jednoduché
úpravy obrázků. Na jeho domovské stránce najdete již kolem dvou desítek oprav a vylepšení.
Pokud potřebujeme pracovat s mnoha obrázky v různých formátech, dobře nám poslouží i moderní
správce souborů Nautilus[29] se svými automatickými náhledy (zvládne i formát xcf, interní formát
GIMP u).
1.3
Bitmapové editory
Na poli bitmapových editorů je jednoznačným králem GIMP[78] (The GNU Image Manipulation Program).
Používají jej weboví návrháři i filmová studia (viz gimp-16[23]). Pokud vám GIMP přijde příliš náročný,
můžete si vybrat některý z jednodušších editorů na Metalabu[11], např. xpaint. Ke GIMP u se v dalších
pokračováních zcela jistě vrátíme.
1.4. VEKTOROVÉ EDITORY
1.4
13
Vektorové editory
Vektorový editor je poměrně náročným programátorským úkolem. Přesto i zde máme na výběr. Asi nejznámější je Kontour[98], součást KDE[95] KOffice[97], před zásahem právníků firmy Adobe známý pod
názvem KIllustrator.
Klasickým editorem, i když bez podpory Bézierových křivek, je xfig[155] s převodníkem transfig.
Dalším vektorovým editorem je GYVE[83].
1.5
Skenování a digitální fotografie
Zde je výběr poměrně malý, zato je v něm soustředěna většina podpory, což je poměrně výhodné, protože
nákup nového skeneru nás nenutí používat jiný software – změníme jen ovladače. Chcete-li koupit skener nebo digitální fotoaparát, jistě tyto stránky navštivte. Ne každý výrobce považuje UNIXové ovladače
za samozřejmost!
Projektem pro skenování je SANE[31] (Scanner Access is Now Easy). Dnes je rozdělen na dvě části
– ovladače a grafická rozhraní. Ovšem nejpopulárnějším grafickým skenovacím rozhraním je bezesporu
XSane[156].
Podobným projektem pro digitální fotoaparáty je gPhoto[81].
1.6
Tisk
Pokud nemáme PostScriptovou tiskárnu, jistě budeme tisknout přes již zmíněný Ghostscript[77]. Jeho
zajímavým rozšířením je projekt Omni[30], který nabízí mezivrstvu pro tvorbu tiskárnových ovladačů
i mnoho nových ovladačů. Existují však i další podobné projekty – např. gnome-print[101].
Kvalitní barevný tisk se pak snaží řešit projekt gimp-print[25].
1.7
Písma
Občas můžeme koupit levná a použitelná CD plná písem za několik set, ale za opravdu profesionální CD
s písmy se ještě dnes platí i šesticiferné sumy. (Kolik z toho asi dostanou dnes žijící tvůrci písem?)
Naštěstí i zde jsou jiné možnosti. Několik desítek počeštěných základních vektorových písem věnovala
firma URW[151] pro projekt Ghostscript[77]. Firma SuSE[149] je pak překódovala pro Latin-2. Další zajímavá a kvalitní písma lze najít v TEXových archivech. V balíku GNU Intlfonts[2] jsou další písma z projektu
Omega[71] . . .
Podobně jako grafické formáty, i formáty písem mají své knihovny - freetype[75] (verze 1 a 2 mají
různá rozhraní) a t1lib[13].
Z pomocných nástrojů jsou užitečné ttfutils[35], type1inst[14] a t1utils[99].
Do poslední kategorie patří programy, které by vlastně neměly existovat. Nabízejí automatické počeštění
výstupů různých programů, které češtinu (zatím) ignorují (Mosaic, Netscape, Mozilla . . . ). Jsou to ogonkify[68] a počešti[26].
Existují též rozumnější nástroje pro automatizované počeštění písem. O nich se zmíníme v některé
z dalších kapitol.
14
1.8
KAPITOLA 1. PŘEHLED SOFTWARU
Barvy
Zde jsou zatím největší problémy, které se vyskytují jak v oblasti technické, tak i právní, a doba, kdy bude
GIMP pracovat v barevném prostoru CMYK za pomoci knihovny GEGL[76], je zatím ještě vzdálená. Takže
uvedu jen seznam zajímavých odkazů, které se vyplatí sledovat.
Jsou to: Generic Colour Management System[24], SCARSE[148]: Scanner CAlibration ReaSonably Easy,
Free Color Management[74], rozcestník Coloraid[59], ICClib[43], gcmm[100] pro GIMP.
Jen málo projektů z této kategorie již dosáhlo rozšíření. Jsou to LCMS[106] s rozhraním pro práci
s barevnými profily ICC [60], již zmíněný gimp-print[25] pro barevný tisk a Ghostscript[77] s implementovanou podporou nezávislých barevných prostorů.
1.9
3D grafika
V této oblasti existuje mnoho zajímavých projektů. Za všechny uvedu pouze Radiance[38] implementující
zajímavou radiační metodu, a Persistence of Vision(T M ) Ray Tracer (PovRay)[120], pracující na principu
klasického rekurzivního sledování paprsku.
1.10
Typografie
TEX[64] jsem si ponechal na konec, neboť k němu se ještě po čase vrátíme. Pomineme-li textové procesory, je
TEX v podstatě jediným zástupcem svobodných typografických programů. Žádný DTP nástroj s otevřeným
kódem a grafickým rozhraním zatím, pokud vím, neexistuje.
Z toho, co si s TEXem nainstalujeme, stojí s souvislosti grafikou za zmínku dva balíky: pstricks –
grafická nadstavba pro práci s PostScriptem na úrovni TEXu a ConTEXt – poměrně nový formát TEXu
s rozsáhlými grafickými možnostmi.
Tak, a máme to za sebou. V další kapitole se již začneme zabývat vlastní grafikou. Pokud byste ještě
neměli dost brouzdání po Internetu, můžete v grafickém adresáři archivu Metalab[9] ještě dlouho pátrat po
zajímavých projektech . . .
Kapitola 2
Než začneme skenovat
Možná jste již slyšeli něco o barevných profilech nebo alespoň o gama křivce. Uživatelům komerčních systémů na klíč bývají tato tajemství skryta pod rouškou magického „co vidíš, to dostanešÿ, často s dovětkem
„Hlavně se nikdy nepokoušej něco změnit v Nastavení monitoru a Nastavení tiskových barev !ÿ Ale nám,
kteří chceme dostat dobrý výsledek i bez těchto magických nastavení, nezbývá, než pochopit základní
souvislosti.
Již dlouho je známo, že lidské oko vnímá trojbarevně. První modely, které měly vytvářet libovolnou
barvu kombinaci tří základních barev, byly tedy jasné – systém RGB (červená–zelená–modrá) pro aditivní
míchání (tam, kde se jednotlivé příspěvky sčítají – např. obrazovky nebo barevná světla) a systém CMY
(azurová–purpurová–žlutá) pro systémy subtraktivní (tam, kde se jednotlivé příspěvky potlačují – např.
míchání barev). Ve školních učebnicích se setkáváme i dnes s pěknými diagramy s barevnými kroužky. Jenže
tak jednoduché to zase není. Fyzikální podstata světla ani lidské vnímání takovou symetrii nevykazují,
a pokud se pokusíte na základě těchto poznatků převést z obrazovky cokoli na papír, díru do světa s tím
věru neuděláte (zvlášť modrou pak nepoznáte).
Obrázek 2.1: Kruhy
Z těchto představ vznikly jednoduché barevné prostory RGB, CMY, HSV a další. Měly však mnoho
nevýhod. Nevystihovaly citlivost lidského oka a byly závislé na použitých základních barvách (a barvivech).
A tak vznikla věda o vnímání barev – kolorimetrie.
2.1
Gama křivka – základ úspěchu
Bezesporu nejdůležitější hodnotou, která musí zajímat dokonce i ty, kteří pracují černobíle, je gama. Pod
tímto číslem se skrývá mocnina, podle níž je světelná intenzita závislá na vstupní veličině.
Podle fyzikálních zákonů o vlivu elektromagnetického pole na elektrony, putující z elektronového děla
na stínítko obrazovky, je jas funkcí přibližně 2,5× mocniny přivedeného napětí. Napětí je pak (většinou)
lineárně závislé na hodnotě, která je zapsaná ve videopaměti (není však přímo úměrné, neboť napětí při
hodnotě nula nemusí být nulové). Nekorigované PC má tedy hodnotu gama 2,5. Některé platformy se však
snaží korigovat toto zkreslení přímo v hardwaru nebo na nízkých úrovních operačního systému (např. NeXT
na koriguje 1/2,5. mocninou na 1,0, Mac 1/1,45. mocninou na 1,8, SGI 1/1,7. mocninou na 1,47). Tato
opravná funkce se nazývá gama korekce.
15
16
KAPITOLA 2. NEŽ ZAČNEME SKENOVAT
Nelineární je však i tiskový proces. Většina tiskových procesů pracuje s drobnými černými či barevnými tiskovými body v plné barvě. Tyto body může na jedné straně zmenšovat potlačení tiskového bodu
(podleptání tiskové desky, potlačení osamělého náboje u laserového tisku či tepelná setrvačnost u tepelného
tisku), na druhé straně je zvětšuje nárůst tiskového bodu (nahromadění barvy v místě tiskového bodu). Ukazuje se, že u světlých barev (do 3–5 %) převažuje potlačení, ve zbytku škály pak výrazně převažuje nárůst.
Všechny tyto procesy je možné matematicky modelovat a korigovat. Lze však vzít zavděk i přibližným
odhadem. V tomto případě si vystačíme s poznatkem, že souhrn těchto vlivů odpovídá přibližně 1,8×
mocnině světlosti předlohy.
Naproti tomu skenery (a snímače digitálních fotoaparátů a kamer) jsou přibližně lineární – jejich
hodnota gama odpovídá přibližně 1. Podobně jsou na tom i filmové osvitové jednotky.
A nakonec je nelineární i vnímání lidského oka. Zdroj světla, který vnímá člověk subjektivně jako poloviční, má ve skutečnosti zářivost jen 18 %. Lidské vnímání světelné intenzity je zhruba logaritmické. Přesné
rozlišování barev pálilo v době před nástupem počítačů zejména výrobce barev pro tiskárny a textilky, a tak
se v roce 1931 sešli odbornící na barvy v organizaci CIE[56] (Commission Internationale de l’Eclairage)
a vytvořili hypotetického standardního pozorovatele a jemu odpovídající barevný prostor, nezávislý na použité technologii. Tento prostor, dnes nazývaný CIE-XYZ, umožňuje popsat jakoukoliv barvu (dokonce
i takovou, kterou nelze namíchat ze třech základních), či přesněji vjem z této barvy, pouze dvěma hodnotami (velmi zjednodušeně je lze nazvat „poměrná červenostÿ a „poměrná modrostÿ). Třetí hodnotou je
pak „světlostÿ barvy.
Obrázek 2.2: Diagram CIE-XZY
Ukázka barevného diagramu CIE-XZY tak, jak jej zobrazí ppmcie z balíku NetPBM[41]. Trojúhelník
uprostřed vymezuje barvy popsatelné systémy RGB (kladnými hodnotami), na oblouku na obvodu jsou
barvy spektra, uprostřed pak bílé body pro různé barevné teploty.
Po nástupu počítačů vznikla potřeba přizpůsobit prostor CIE-XYZ tak, aby bylo možné co nejomezenějším počtem bitů, které budou každé složce přiděleny, pokrýt co nejlépe možnosti barevného rozlišení
oka (odborně se to nazývá perceptuální uniformita). A tak vznikly barevné prostory CIE L*u*v* a CIE
L*a*b*, oba značně výpočetně náročné. To sice nevadí při přípravě pro tisk, ale při zobrazování v reálném
čase ano. S dalšími podobnými prostory přišli tvůrci norem pro barevné televizní vysílání. A tak vznikly
jednoduché barevné prostory, které používají pouze mocninnou gama korekci. Pro nás je nejdůležitější
sRGB[153] s gama korekcí 2,2.
Při testech se ukázalo, že obraz na obrazovce nevypadá nejpodobněji originálu tehdy, je-li hodnota gama
zcela vykorigovaná, jak by se dalo čekat, ale tehdy, odpovídá-li tato hodnota 1/1, 1 × −1/1, 2× mocnině
gama. V anglosaské literatuře se tento efekt nazývá rendering intent a má zřejmě souvislost s osvětlením
okolí.
Stručné shrnutí: Fyzikální jevy při zobrazování způsobují, že se barevné hodnoty v obrázcích nezobrazuje lineárně, ale podle jisté, přibližně mocninné gama křivky. Abychom tuto
nelinearitu vykompenzovali, musíme provést korekci gama, což je tedy záměrné zkreslení barevných hodnot tak, aby co nejlépe kompenzovaly zkreslení monitoru a nelinearitu lidského
oka.
2.2. K ČEMU JE TO V PRAXI?
2.2
17
K čemu je to v praxi?
Když sečteme všechny výše uvedené vlivy dohromady, zjistíme, že je vhodné ukládat obrázky s hodnotou
gama zhruba 2,2. Od této hodnoty se také odvíjí mnoho zobrazovacích norem, např. sRGB[153] pro Web,
dále Photo CD, i standardy analogové a digitální televize.
Takové obrázky mají mnoho výhod – vypadají přirozeně na většině obrazovek bez jakékoliv korekce
(zpětnou korekci zajistí sama obrazovka), celkem slušně si vystačí s osmibitovou škálou a potřebná korekce
pro tisk je také minimální.
Mají však i nevýhody, na které musíme pamatovat. Některé filtry z kreslících programů dávají na obrázcích s vykompenzovanou gamou odlišné výsledky, které pak neodpovídají fyzikální podstatě jevu, který
simulují (rozostření, zaostření, rozklad na body apod.). V takových případech je vhodné pracovat s lineárním barevným prostorem, pokud možno šestnáctibitovým, a gamu zkorigovat teprve ve výsledku.
Máme tedy dvě možnosti:
• Co nejdříve (nejlépe ještě ve skeneru nebo digitálním fotoaparátu) gama křivku vykorigovat úpravou
naměřených hodnot 1/2, 2× mocninou („zesvětlit jeÿ) a následně již obrázek ukládat jako zkorigovaná
osmibitová data. Tato metoda je ideální tehdy, nepotřebujeme-li s obrázkem provádět žádné na gama
křivce silně závislé úpravy. Data budou již bez jakékoliv úpravy zobrazitelná na obrazovce. Pro tisk je
můžeme dokorigovat („ztmavitÿ) 1, 22× mocninou. Bez této korekce vyjdou o málo světlejší než originál (ale stále ještě přijatelné). Pokud chceme obrázek připravit jen pro tisk, provedeme korekci pouze
na 1/1, 8× mocninu a pro náhled na obrazovce jej „přisvětlímeÿ 1/1, 22× mocninou. Gama korekci
umí provést například program XSane[156] i SANE [31], dokonce i ve skeneru (pokud to umí skener),
umí to GIMP[78] v tabulce Úrovně (horní prostřední číslo), umí to i pnmgamma z NetPBM[41].
• Druhou možností práce, které dáme přednost, chceme-li data dále zpracovávat pomocí různých filtrů,
je práce v lineárním barevném prostoru. V tomto případě musí náš software umět provádět gama
korekci při náhledu na obrazovku. Uměl to například GIMP-1.1[78], ale modul display gamma z něj
byl před vydáním verze 1.2 odstraněn. Umí to i náhled v XSane[156]. Korekci gama v tomto případě
provedeme až na konci, těsně před tiskem nebo digitálním výstupem. Nechceme-li v tomto případě
přijít o rozlišení v tmavých odstínech, musíme počítat zhruba s 14bitovými daty.
2.3
Ukázky
Obrázek 2.3: Fotografie bez kompenzace gama
Lineárně naskenovaný obrázek před korekcí gama.
Obrázek se zobrazí příliš tmavý, stíny se ztrácejí.
Obrázek 2.4: Fotografie s kompenzací gama
Tentýž obrázek po provedení korekce gama vypadá
na obrazovce podobně jako původní fotografie.
Na obrázku 2.5 jsou v horní polovině pruhy vykresleny plnou barvou s 0 %, 25 %, 50 %, 75 % a 100 %,
ve spodní polovině jsou pak složeny z bílých a černých teček v příslušném poměru. Na obrázku 2.6 jsou
odstíny horních pruhů upraveny tak, aby odpovídaly hodnotě gama 2,2. Zatímco na prvním obrázku mají
18
KAPITOLA 2. NEŽ ZAČNEME SKENOVAT
horní a dolní pruhy viditelně odlišné odstíny, na druhém obrázku je tento rozdíl do značné míry vykompenzován korekcí gama (záleží na nastavení černé na monitoru).
Obrázek 2.5: Stupnice bez kompenzace gama
Obrázek 2.6: Stupnice s kompenzací gama
Okolní osvětlení znemožňuje, aby jas monitoru začínal na nule (tedy aby funkce inzenzity byla čistě
mocninná). Je třeba hledat kompromisní nastavení – takové, kdy jsou nejnižší nenulové hodnoty na hranici
viditelnosti. Na obrázku 2.7 jsou tmavé a světlé terčíky. Pokud nevidíme ani jeden tmavý terčík, znamená to,
že je třeba zvýšit jas monitoru. Pokud je vidíme všechny jasně, je třeba jas snížit. Pokud naopak nevidíme
světlé terčíky, je monitor přesvícený a není již schopen rozlišovat světlé odstíny.
Obrázek 2.7: Tmavé a větlé terčíky
Dolní polovina obrázku 2.8 byla nejdříve uložena v osmibitovém lineárním modelu a teprve poté byla
gama vykompenzována. Při detailním pohledu vidíme, že přechod je v oblasti nejtmavších barev skokový.
Obrázek 2.8: Stupnice
2.4
Další čtení
Nezmínili jsme se zde o mnoha detailech, jako např. o doporučeném odchýlení od mocninné křivky v gama
korekci nejtmavších odstínů. K barevným profilům jsme se též nedostali – vrátíme se k nim v některé
z pozdějších kapitol.
K dalšímu čtení doporučuji každému vážnějšímu zájemci skvěle zpracované stránky Charlese Poyntona
[88] o barvách a gama křivce. Na stránkách projektu SCARSE[148] jsou též výborně zpracované informace
od Andreie Frolova a kalibrační obrázky.
Kapitola 3
Co (ne)umí skener
V této kapitole se již vrhneme na praxi, a to pěkně od začátku. Skenování je v současné době nejrozšířenější
způsob, jak dostat obrázek do počítače. Dnes se podíváme, co můžeme od skeneru chtít a jak nejlépe zvolit
rozlišení.
3.1
Výběr skeneru
Pokud teprve o koupi skeneru uvažujete, je první část této kapitoly určena právě pro vás . . .
V našem seriálu se budeme věnovat digitální fotografii jen minimálně. (Digitální fotoaparát nemám,
a tak toto téma nechávám povolanějším – na Rootu například najdete článek [122].)
Pokud chceme v Linuxu skenovat, před koupí skeneru určitě navštívíme stránky projektu SANE[31] nebo
Parallel Port Scanners under Linux[53] či USB Scanners under Linux[54] (zelená zde nemusí ještě znamenat bezproblémový provoz). Nenajdeme-li tam vybraný skener, můžeme do vyhledávače napsat „SANE
<jméno skeneru>ÿ nebo se podívat na firemní www stránku. Nenajdeme-li podporu pro SANE a ani výrobce nenabízí ovladač pro Linux/SANE, skeneru se vyhneme. Skupina uživatelů skenující pod Linuxem
není natolik početná, aby dokázala přimět výrobce k napsání ovladačů pro Linux či alespoň uvolnění dokumentace.
3.2
Základní parametry
Kromě podpory pod Linuxem (a ceny) by nás měly zajímat základní schopnosti. Měli bychom vědět, jak
velkou plochu potřebujeme skenovat (čím větší, tím dražší skener), zdali chceme skenovat transparentní
(průhledné), či reflexní (neprůhledné) předlohy (skenery, které umějí oboje, bývají dražší).
Zajímat by nás měly i technické parametry. Prvním z nich je rozlišení. Důležité je optické rozlišení,
udává se v bodech (vlastně pixelech) na palec (DPI), u digitálních fotoaparátů pouze v pixelech (na celý
obraz). Až šestnáctinásobně větší údaj, který mnozí výrobci uvádějí jako tzv. „softwarové rozlišeníÿ, patří
do kategorie mediální masáže (totéž platí o „digitálním zoomuÿ digitálních fotoaparátů). Skener se „softwarovým rozlišenímÿ 9 600 DPI totiž často nerozliší ani čáru o tloušťce třicetinásobku tohoto „rozlišeníÿ.
Zmíním se ještě o dalším „rozlišeníÿ, které rádi používají výrobci digitálních fotoaparátů. Nejsou-li buňky
CCD snímačů ve čtvercové síti (všechny tři barvy v každém bodu) a mají-li jinou geometrii, výrobce někdy
uvádí pod různými názvy další nevěrohodné „rozlišeníÿ podle počtu snímacích bodů. Pro převod na směrodatný údaj zde musíme znát fyzickou geometrii. Např. TV kamera s udávaným rozlišením 640 × 480
pixelů může mít skutečné svislé rozlišení menší – v lichých řadách totiž chybí modrocitlivý prvek, v sudých
červenocitlivý, chybějící hodnoty dopočítá elektronika. Výrobce „ušetříÿ třetinu snímačů a běžný uživatel
to nepozná. Věrohodnější údaj o rozlišení nám v tomto případě poskytne celkový počet snímacích elementů
vydělený třemi (počet barev). V tomto přípaně by odpovídal hodnotě 320 pixelů svisle.
19
20
KAPITOLA 3. CO (NE)UMÍ SKENER
Optické rozlišení 300 DPI je naprosté minimum, které dostačuje pro skenování fotografií a jejich tisk
do měřítka 1:1. Skenery s menším rozlišením jsou dobré již jen na faxování nebo pro web. Na dobře
vypadající čárovou grafiku je pak minimum 600 DPI. Větší rozlišení uvítáme, budeme-li skeny zvětšovat.
Mnohem vyšší požadavky jsou pak na skenování kinofilmů. S 2 400 DPI (optickými) si vystačíme na zvětšeninu do velikosti A4.
Druhým důležitým parametrem je bitová hloubka. Pokud jste četli předchozí kapitolu pozorně, jistě
pochopíte, proč 12 až 14 bitů není luxusem, ani když vaše skeny budou jen osmibitové. Důvodem je gama
korekce a podání nejtmavších odstínů. Dalším důvodem jsou i nekontrastní předlohy. Výhodné je, lze-li
nahrát gama křivku přímo do skeneru. Existují dva typy těchto skenerů – s digitální převodní tabulkou – zde
může gama korekci zajistit převodní tabulka mezi A/D převodníkem a datovou částí; a s analogovou gama
korekcí (někdy i s analogovým řízením jasu a kontrastu), kde může gama korekci zajistit analogový prvek
vřazený před A/D převodník. Lze říci, že osmibitový skener s analogovou gama korekcí podá tmavé odstíny
lépe, než desetibitový s digitální gama korekcí. Pokud je snímač dobře nastavený, ztrácí analogová gama
korekce s nástupem levných 12 a 14bitových A/D převodníků na významu. Jediná digitální tabulka nahradí
analogovou gama korekci, kontrolu jasu a kontrastu, a dokonce může provádět část barevné kalibrace.
Skenery vyšší třídy mají některé doplňkové funkce – řízení jasu výbojky, automatickou kalibraci, možnost
skenování prostorových předloh do určité výšky a další.
3.3
Problémy skenerů
Parametry, které již na reklamních prospektech nebývají uvedeny, jsou ostrost linií a kvalita podání
jasové a barevné škály. Mnohé skenery s celkem vysokým optickým rozlišením i bitovou hloubkou
degradují svou použitelnost neostrostí. Jiné nejsou schopny rozlišit 5% šedou od bílé či 95% šedou od černé.
Některé mohou mít velké problémy se skenováním čistých barev.
Některé skenery dokonce přidávají do obrázku nežádoucí rušivé obrazce (většinou se jedná o svislé
nebo šikmé čáry, často patrné v tmavých či světlých místech předloh). Neostrost a barevná nepřesnost je
částečně kompenzovatelná digitálně, ale na ostatní problémy nepomůže ani nejpečlivější zpracování.
Jiné skenery dávají dobré výsledky pouze v nejvyšším rozlišení. Tak můžeme být nuceni skenovat vždy
velké objemy dat.
Dobré je též znát rychlost skenování. Paralelní skenery mívají problémy protlačit větší objemy dat
přes sběrnici. Lepší SCSI a USB skenery tyto problémy nemívají. U levných skenerů však někdy dvojnásobné
zvětšení rozlišení znamená dvacetinásobné prodloužení skenování! Některé SCSI skenery též blokují sběrnici
i na několik sekund. Připojíte-li na stejnou sběrnici systémový disk nebo běžící vypalovačku, budete mít
za chodu skeneru problémy. Pokud není linuxový ovladač naší SCSI karty dobře napsaný, můžeme se též
dočkat nepříjemného zpomalení (bohužel to platí i o některých SCSI kartách přibalených ke skeneru).
3.4
Testy kvality
Vůbec nejlepší je před koupí skeneru najít v domácím albu nejsvětlejší a nejtmavší fotografii (avšak obě
dobře prokreslené), nechat si je na zkoušku naskenovat v různých rozlišeních a pak si skeny co nejdůkladněji
prohlédnout. Není též špatné naskenovat barevnou kalibrační tabulku nebo nahlédnout do věrohodného
srovnávacího testu (pokud je na vychválený skener o deset stránek dál reklama, najdeme si jiný časopis).
Důležitým testem může být naskenování fotografie s hrubým povrchem, které u některých skenerů
dopadne velmi špatně a obrázek je poset drobnými odlesky.
3.5
Výběr rozlišení
Rozlišení je jeden z nejdůležitějších údajů pro každé skenování. Jeho hodnota ovlivní velikost nejmenších
viditelných detailů v obrázku. Zvolíme-li příliš malé, obrázek je mlhavý nebo se objeví viditelné čtvercové
3.5. VÝBĚR ROZLIŠENÍ
21
pixelizování, je-li velké, platíme za to větším objemem dat a delší dobou zpracování. Podobně jako v případě skenerů se rozlišení udává v bodech na palec (DPI), někdy též v bodech na centimetr. Pro jeho volbu
je důležité znát cílovou velikost obrázku a zařízení, pro které bude určen. Běžně se používá následující
empirické pravidlo, které platí pro běžná výstupní zařízení a grafiku v šedích nebo barvách (např. fotografie): Rozlišení na cílovém médiu má být alespoň dvojnásobné než frekvence rastru výstupního zařízení.
Frekvenci rastru si vysvětlíme v kapitole věnovaném tisku, prozatím si vystačíme s tabulkou, která platí
pro měřítko 1:1. Pokud je cílová velikost jiná, použijeme přímou úměru. Rozlišení čárové grafiky pak volíme
s ohledem na schopnosti lidského oka. Čáry v rozlišení nad 400 DPI přestávají být viditelně zubaté. Avšak
až do rozlišení 1 800 DPI se pozorovatelně zlepšuje kresba ostrých úhlů a tenkých linií.
Hodnoty v tabulce 3.1 berte jako orientační empirické hodnoty. Jsou situace, kdy vyšší rozlišení význam
má, jindy nikoliv.
Médium
Obrazovka
Fax
Fax fine režim
Laserová tiskárna 300 DPI
Laserová tiskárna 600 DPI
Laserová tiskárna 1 200 DPI
Barevná inkoustová tiskárna, barevný plotter
Barevná laserová tiskárna
Ofsetový tisk, běžný papír
Ofsetový tisk, křídový papír
Bezvodý ofsetový tisk, křídový papír
Rozlišení v DPI
pro fotografie
pro čárovou grafiku
144–200
(reserva pro vyhlazování)
72–100
60–90
204 × 98
80–120
204 × 192
105–140
300
210–280
600
240–300
600–900
150–400
(dle kvality)
400–600
200–400
(dle kvality)
400–600
280–350
600–900
300–350
600–1 200
550–650
900–1 800
Tabulka 3.1: Výběr rozlišení
Většina skenerů neumí své rozlišení měnit fyzicky, a proto tak činí elektronicky, mnohdy značně primitivními algoritmy – např. pouhým přeskočením náboje z některých čidel. Pokud má např. váš skener
rozlišení 600 DPI, zkuste naskenovat jemný obrázek v rozlišení 550 DPI. Pokud se na každých 10 pixelech
objeví zřetelná skoková linie, je vhodné se takovým rozlišením vyhnout. Je tedy vhodné volit rozlišení,
které je celým zlomkem optického rozlišení, případně je s ním v poměru malých celých čísel.
Případné snížení rozlišení provedeme až v počítači pomocí chytřejších algoritmů.
Začátečníci často přikládají tiskové velikosti obrázku v počítači (v délkových jednotkách) přehnanou
pozornost. Tento údaj slouží pouze k usnadnění práce s obrázkem a často se stane, že se v některých
programech ztratí (a objeví se místo něj např. hodnota 72 DPI). Bez hodnoty rozlišení je údaj o tiskové
velikosti bezcenný. Naopak známe-li jej, platí jednoduchá rovnice:
velikost (v palcích) × rozlišení v DPI = velikost v pixelech
Je třeba vždy pamatovat na zásadní rozdíl mezi zmenšením pixelové reprezentace obrázku (přepočítáním obrázku) a pouhou změnou velikosti pro tisk bez přepočítání (obrázek při něm změní rozlišení, ale
pixelová reprezentace zůstane stejná). V současné verzi GIMPu nastavujeme obě veličiny nezávisle na sobě
ve stejných tabulkách „Nový obrázekÿ a „Velikost obrázkuÿ.
V dalších kapitolách nás čeká ještě rozbíjení rastru, tipy a triky, barevná kalibrace skeneru, a nakonec
se podíváme na OCR.
22
KAPITOLA 3. CO (NE)UMÍ SKENER
Kapitola 4
Skenujeme
Nevěřme však tomu, že ten nejlepší skener udělá vše za nás. Často to bez naší pomoci nepůjde. Dnes si
projdeme možnosti XSane a význam základních voleb obrázků – rozsahu, gama korekce a bitové hloubky
pro praxi.
4.1
XSane
Jedno z nejlepších rozhraní pro skenování je jistě XSane. Popíšeme si proto práci s ním důkladněji a vysvětlíme si i význam jednotlivých voleb. U některých uvedeme alternativy pro pozdější úpravy pomocí balíků
GIMP[78], NetPBM[41] a ImageMagick[87] (convert).
Abychom dosáhli dobrých výsledků při jakémkoliv skenování, je nutné správně zvolit několik hodnot:
rozsah barev (barevnou dynamiku), gama křivku, rozlišení a bitovou hloubku. V minulé kapitole jsme si
vysvětlili význam rozlišení, dnes si popíšeme i ostatní.
Než začneme skenovat, ujasníme si, zda budeme požadovat fotografii s maximální dynamikou, nebo
s maximální věrností. V prvním případě máme otevřenou možnost různých vylepšení, v druhém případě se
budeme striktně držet hodnot daných barevností originálu. Obrázky s vysokou dynamikou často vypadají
na pohled lépe, než ty zcela shodné s předlohou.
Obrázek 4.1: Pohled na XSane
23
24
4.2
KAPITOLA 4. SKENUJEME
Výběr rozlišení
U XSane máme na výběr dvě možnosti – šoupátko a roletka s vybranými hodnotami. Proč jsou pro kvalitní
skenování vhodné pouze hodnoty z roletky (a to ještě jenom ty, které jsou celým zlomkem optického rozlišení
nebo jsou s ním v poměru malých celých čísel), jsme si vysvětlili v minulé kapitole.
V jiných programech lze rozlišení změnit později, ale jedná se již jen o přepočítávání původního obrázku.
Pokud však potřebujeme větší rozlišení, než skener nabízí, je digitální zvětšení jedinou šancí. Někdy je
vhodné i digitální zmenšení (např. u zrnitých podkladů, postačí-li výstup v nižším zozlišení).
GIMP[78]: „Obrázek → Velikost Obrázku. . .ÿ Přepočítání obrázku zadáváme v horní polovině tabulky,
v dolní polovině pak velikost pro tisk. Změna velikosti pro tisk však neovlivňuje obrazová data, pouze
zapíše tuto informaci do souboru. Důležité je nastavení „Prostředí → Typ interpolaceÿ v předvolbách,
kterým ovlivníme algoritmus, pomocí něhož GIMP přepočítá data (čím pomalejší, tím kvalitnější).
NetPBM[41]: pnmscale a pnmscalefixed
Convert[87]: -sample (algoritmus nejbližší soused)
Obrázek 4.2: Fotografie 540 DPI
Obrázek naskenovaný v rozlišení 540 DPI
na levném skeneru s optickým rozlišením 600 DPI
(tj. poměr větších celých čísel 9/10). Při zvětšení
vystupuje čtvercová interferenční síť.
4.3
Obrázek 4.3: Fotografie 540 DPI
Obrázek naskenovaný v rozlišení 600 DPI, který byl
zmenšený na 540 DPI až v počítači. Interferenční síť
se neobjevila.
Výběr rozsahu
Výběr vstupního a výstupního rozsahu ovlivňuje dynamiku obrázku. Velký vstupní rozsah vede k méně
kontrastním obrázkům, příliš malý vstupní rozsah „uřezáváÿ nejsvětlejší či nejtmavší hodnoty a obrázek
je v těchto partiích plochý. Při výběru výstupního rozsahu můžeme vzít ohled na možnosti výstupního
zařízení a jeho rozsah. Pro obrazovku je vhodný plný výstupní rozsah, pro ofsetový tisk zhruba 3 %–97 %.
Při výběru máme hned několik možností:
4.3.1
Výběr rozsahu po barvách, nebo výběr spřažený
(hlavní okno, trojbarevné tlačítko vpravo dole)
Zatímco spřažený režim mění dynamiku všech barev stejně a barevný tón se nemění, výběr po barvách mění
dynamiku každé barvy zvlášť a může změnit barevné podání obrázku. Většinou k lepšímu, ale u barevně
nevyvážených kompozicí (zelený míč na trávníku) obrázek zčásti ztratí barevnost.
4.4. VÝBĚR GAMA KOREKCE
4.3.2
25
Automatický výběr rozsahu
(normalizace, hlavní okno, třetí tlačítko vpravo dole)
Je to nejrychlejší metoda. Na náhledu vybereme obdélníkový rozsah uvnitř skenovaného obrázku. Stiskneme
tlačítko „Automaticky upravitÿ a vše je připraveno. Automatický výběr nás většinou připraví o několik
nejtmavších a několik nejsvětlejších odstínů.
GIMP[78]: „Obrázek → Barvy → Auto → Normalizovatÿ nebo „Obrázek → Barvy → Úrovně. . . / Automatickyÿ
NetPBM[41]: pgmnorm a ppmnorm (bez parametrů nebo s možnými volbami pro změnu vstupního rozsahu)
Convert[87]: -normalize
4.3.3
Výběr rozsahu dle histogramu
(šoupátka v hlavním okně a okně histogramu)
Otevřeme-li si obrázek s histogramem, můžeme pozorovat poměrné zastoupení barev podle jejich tmavosti.
Volbu kontrastu a jasu či přímo šoupátka mezních hodnot nastavíme dle svého názoru. Na náhledu si
zkontrolujeme výsledek.
GIMP[78]: „Obrázek → Barvy → Úrovně. . .ÿ (spřažený i po barvách)
NetPBM[41]: Histogram lze vypočítat pomocí pnmhistmap
4.3.4
Ruční výběr rozsahu
(pipetky v okně náhledu)
Na náhledu najdeme nejtmavší a nejsvětlejší místo a jejich barvu nabereme pipetkami v náhledovém okně.
Podobně můžeme zvolit i místo neutrálně šedé pro volbu dodatečné gama korekce. V GIMPu je možné
klepnout do obrázku a nabrat barvu v dialogu „Obrázek → Barvy → Křivky. . .ÿ, dialog „Obrázek → Barvy
→ Úrovně. . .ÿ bohužel zatím toto neumí.
4.4
Výběr gama korekce
Jak již bylo řečeno v minulé kapitole, budeme často potřebovat obrázky s gama korekcí. Mnoho skenerů,
dnes již i v kategorii těch nejlevnějších, umožňuje nahrát gama křivku přímo do skeneru. Skener skenuje 10,
12, nebo 14bitová data, provádí korekci a do počítače odesílá již korigovaná 8bitová data. U SANE/XSane je
tato možnost standardně vypnutá a aktivuje se rozšířenou volbou Použít vlastní gama tabulku (Use Custom
Gamma Table). XSane má navíc možnost automatického přizpůsobení hodnoty gama podle dynamiky
obrázku (pokud jej zapneme v předvolbách). Současná verze XSane ovšem k tomu neumí při skenování
do souboru automaticky přičítat cílovou gama korekci (při skenování pro tisk to umí), takže si musíme
pomoci ručním přičtením požadované hodnoty. Po naměření hodnoty jednoduše 12× klikneme na šoupátko
gama křivky (a tím zvýšíme hodnotu o 1,2 – na 2,2 vhodné pro sRGB[153]; obdobně klikneme jen 8×
při skenování pro tisk bez další korekce). Pokud automatickou úpravu hodnoty gama nevyužijeme, stačí si
napevno nastavit požadovanou hodnotu.
GIMP[78]: „Obrázek → Barvy → Úrovně. . .ÿ (hodnota nahoře uprostřed)
NetPBM[41]: pnmgamma (implicitní hodnota je 2,2, možnost korekce dle CIE pomocí -cieramp)
Convert[87]: -gamma
26
4.5
KAPITOLA 4. SKENUJEME
Výběr bitové hloubky
Pokud provedeme gama korekci již ve skeneru, vystačíme si většinou s osmi bity. Chceme-li však provádět
úpravy až v počítači, je lepší zvolit vyšší bitovou hloubku a snížit ji až po provedení gama korekce. Tím
ovšem vyloučíme možnost použít k mezikrokům programy, které tyto obrázky nezpracují (např. GIMP1.2). Pokud oželíme jemné rozlišení nejtmavších odstínů, vystačíme si s osmi bity vždy. V XSane tuto
volbu najdeme mezi rozšířenými volbami.
Pokud u některých ovladačů sken vůbec nevyjde, je pro vyšší bitovou hloubku nutné vypínat volbu
Použít vlastní gama tabulku (Use Custom Gamma Table).
GIMP[78]: Verze 1.2 umí pouze hloubku 8 bitů, lze použít gimp-16[23].
NetPBM[41]: Bez problémů pracuje s vícebitovými daty (od verze z roku 2000 podporuje i binární
vícebitovou reprezentaci). Změnu bitové hloubky můžeme provést např. pomocí pnmdepth (zadává se
maximální hodnota maxval, např. 65535, nikoliv bitová hloubka).
Convert[87]: -depth (umí hodnoty 8 a 16)
4.6
Ukázky úprav
Obrázek můžeme dále jemně dolaďovat pomocí dalších úprav (křivky, kontrast), ale to je již věc subjektivního názoru na požadovaný vzhled obrázku.
4.7
Výběr výřezu
Je sporné, zdali provádět konečnou volbu výřezu již v náhledu skenovacího programu. Za prvé je nepřesný
a můžeme tak obrázek podříznout, nebo naopak oříznout nedostatečně. Za druhé některé filtry vyžadují
několik pixelů rezervy na okraji obrázku, aby měly dostatek vzorků pro svou činnost (doostření, vyčištění
apod.). Je proto dobré „nabratÿ více, nez je potřebné, a konečný ořez provést později.
4.7. VÝBĚR VÝŘEZU
27
Obrázek 4.4: Sken bez úprav
Obrázek bez jakýchkoliv úprav, jen s gama korekcí.
Tento levný skener dává načervenalý výsledek.
Obrázek 4.5: Sken se spřaženým rozsahem
Obrázek naskenovaný s automatickým výběrem
rozsahu ve spřaženém režimu. Obrázek je
kontrastnější, avšak nádech nezmizel.
Obrázek 4.6: Sken s rozsahem po barvách
Obrázek naskenovaný s automatickým výběrem
rozsahu po barvách. Obrázek změnil barevné
podání a automatika odstranila načervenalý
nádech.
Obrázek 4.7: Kalibrovaný sken
Pro srovnání je připojen i obrázek upravený
za použití barevného profilu skeneru (o něm
budeme psát v dalších kapitolách) v maximální
bitové hloubce.
Obrázek 4.8: Špatně nastavené úrovně
Nastavení příliš malého vstupního rozsahu obrázek
poškodí, je pak sice velmi kontrastní, ale
nepoužitelný.
Obrázek 4.9: Sken se správně upravenými úrovněmi
Obrázek 4.7 po vhodné úpravě úrovní (a gama
křivky) vypadá kontrastněji a výrazněji – nejlépe
ze všech uvedených.
28
KAPITOLA 4. SKENUJEME
Kapitola 5
Tipy a triky pro skenování
V této kapitole se dozvíme, co je to moiré a jak se mu vyhnout. Ukážeme si, jak lze napravit neostré obrázky
a jak se retušuje Razítkem. Poznáme několik užitečných postupů při skenování problematických předloh.
5.1
Rozbíjíme rastr
Pokud skenujeme již vytištěné obrázky, může dojít k interferenci mezi rastrem obrázku a rozlišením zařízení.
V časopisech občas najdeme obrázky, na kterých jasně vidíme toto typické moiré (čti moaré) vznikající
popsanou interferencí. Abychom se mu vyhnuli, je vždy třeba rastr odstranit (rozbít). Moiré je totiž zrádný
jev a jeho projevení je věc (pseudo)náhody – nemusí se objevit na obrazovce ani na zkušebním tisku,
dokonce ani na digitálním nátisku, ale až na filmu.
Aby moiré nevzniklo již při skenování, je nutné naskenovat obrázek ve vyšším rozlišení (alespoň dvojnásobném), než je frekvence původního rastru, a následně jej programově zmenšit. Pro zmenšení nesmíme
použít metodu nejbližší soused (pokud máme špičkový skener, který sám snižuje rozlišení lepším postupem, není tento krok nutný). Pro malá rozlišení (do 60–70 % frekvence rastru) to stačí. Pro větší rozlišení
(do 250 %) pak musíme ještě použít filtry, které obrázek vyhladí. Vhodný je filtr zvaný medián (běžný
nebo adaptivní), rozostření konvoluční tabulkou (vyplněnou čtvercově shodnými hodnotami) nebo nelineární filtr v režimu optimálního odhadu. Filtry můžeme používat opakovaně, dokud nebude obrázek hladký
beze zbytků rastru (kontrolujeme nejméně v měřítku 1:1). Pro ještě větší rozlišení použijeme běžný nebo
rekurzivní medián s příslušným průměrem rozostření, případně mnohokrát za sebou použijeme optimální
odhad. Na rozbíjení rastru není příliš vhodné Gaussovo rozostření.
Gama korekci provádíme až po rozbití rastru. Před ním je účinek gama korekce nedefinovatelný. Nakonec
obrázek ořízneme, protože pro okrajové pixely nelze rastr rozbít.
Pro lepší podání tmavých barev je možné při zpracování změnit bitovou hloubku. Vlastní skenování
může být osmibitové (snímáme jen barevné tečky).
Všechny filtry k rozbíjení rastru obrázek lehce rozostří; můžeme jej však po těchto úpravách ještě
doostřit.
Nejproblematičtější je rozbití rastru v obrázku s drobným textem. Často musíme sken ponechat ve vysokém rozlišení (nad 250 % frekvence rastru) a výše uvedené filtry mohou narušit i drobné linky textu.
Lze tedy použít pouze standardní (nerekurzivní a neadaptivní) medián nebo ploché rozostření se sníženým
průměrem. Můžeme přitom experimentovat s vhodnými prahovými hodnotami. Částečně rozbitý rastr pak
lze vyhladit pomocí pomalého selektivního Gaussova rozostření.
Ukázka kompletního postupu: Budeme předpokládat rastr obrázku 150 LPI (linek na palec), požadované
rozlišení 300 DPI (bodů na palec).
Obrázek z knihy Cesta do říše Velkého chána, Kvasnička a Hampl, 1998
29
30
KAPITOLA 5. TIPY A TRIKY PRO SKENOVÁNÍ
GIMP[78]: „Soubor → Získat → XSane [zařízení]ÿ – gama nastavíme na 1.
„Obrázek → Velikost obrázku . . . ÿ Poměr 0,5. Rozlišení přepíšeme na 300 (aby se nezměnila informace
o velikosti pro tisk).
„Filtry → Vylepšení → Vyčistit . . . ÿ Adaptivní: ano, Rekurzivní: ne, Poloměr: 3, Úroveň černé: -1,
Úroveň bílé: 256 (ve starších verzích GIMPu lze poslední dvě hodnoty nastavit jen na 0 a 255)
Po první aplikaci filtru: „Obrázek → Barvy → Úrovně . . . ÿ gama (prostřední hodnota horní lišty)
na 2,2 (pro sRGB)
Pokud obrázek ještě není čistý, opakujeme „Filtry → Vylepšení → Vyčistit . . . ÿ, dokud nedosáhne
požadované čistoty.
NetPBM[41]: Jsou zde dvě ukázky s různými filtry. První je včetně změny bitové hloubky pro lepší podání
tmavých barev. Velikost rozostřovacího čtverce pro pnmsmooth musí být dostatečná, aby pokryla celou
buňku rastru.
scanimage --resolution=600 [další parametry] --mode=Color | \
pnmdepth 65535 | pnmscale .5 | \
pnmsmooth -size 3 3 | \
pnmgamma -cieramp | pnmdepth 255 >obrazek.ppm
Druhá možnost:
scanimage --resolution=600 [další parametry] --mode=Color | \
pnmscale .5 | \
pnmnlfilt .4 .8 | pnmnlfilt -.3 .7 | \
pnmgamma -cieramp >obrazek.ppm
Obrázek 5.1: Moiré
Nerozbijeme-li rastr, může v tisku způsobit moiré.
Obrázek 5.2: Čistý obrázek
Po rozbití rastru budeme mít jistotu, že se moiré
nemůže objevit.
Obrázek 5.3: Detail moiré
Obrázek 5.4: Ukázka rozbití rastru
5.2
Čistit nebo retušovat?
To je dilema každého skeneristy. Každá nečistota se objeví ve skenu jako rušivá tečka. Nepracujeme-li
v bezprašné místnosti, občasným problémům se neubráníme ani při pečlivém čištění. Pro čištění je ideální
5.3. NEWTONOVY KROUŽKY A PŘILEPENÉ FOTOGRAFIE
31
látková nebo papírová utěrka, která nepouští chlupy. Čistíme-li vlhkou cestou, nesmí čistič zanechávat
mastný povrch ani nesmí vytvářet různé konzervační povlaky.
GIMP[78]: Máme dvě možnosti – automatickou opravu pomocí „Filtry → Vylepšení → Vyčistit . . . ÿ
(je nutné experimentálně najít vhodné nastavení – viz též předchozí kapitola) nebo ruční překrytí
Razítkem.
Obrázek 5.5: Ukázka retuše razítkem
Rychlokurs retušování Razítkem: Poblíž vadného místa nabereme tlačítkem Control podobný vzorek. Poté
jej přeneseme (s vhodnou velikostí stopy) na vadné místo. Celý obrázek si prohlédneme nejméně
v měřítku 1:1 a (na ukázce 2:1).
Automatické vyčištění předlohy nám také přijde vhod, pokud náš skener neumí čistě seskenovat fotografie na hrubém papíře a pokryje je řadou bílých plošek. V tomto případě je vhodné skenovat v co nejvyšším
rozlišení a experimentovat s automatickým čištěním ihned po naskenování a po případném zmenšení.
5.3
Newtonovy kroužky a přilepené fotografie
Přilepení fotografie způsobuje na skenu typické tmavší fleky. Jejich původcem jsou stopy mastnoty na fotografii nebo na desce skeneru, případně vlhkost. Lze se bránit dvojím způsobem – buď dokonalým odmaštěním (a vysušením) fotografie a skeneru a snížením přítlaku na fotografii, nebo spolehlivěji, kvalitněji
a nákladněji s pomocí těkavého smáčedla. Lze též použít retušovací Razítko.
S Newtonovými kroužky (jemnými soustřednými barevnými kruhy) se setkáme hlavně při skenování
filmů. Boj s nimi je problematický – ve specializovaných prodejnách je možné zakoupit sprej proti Newtonovým kroužkům.
5.4
Černá a bílá lepenková podložka
Pokud je jednostranná předloha na tenkém papíře, bílá podložka odstraní ze skenu výraznou kresbu papíru.
Častým problémem je též prokopírování rubu předlohy. Tomu lze naopak zabránit podložením předlohy
černou podložkou. Výjimkou je levný hlazený papír týdeníků, kde černá podložka nepravidelně prosvítá.
Zde volíme vhodný šedý podklad.
Výborně nám poslouží ochranné lepenkové desky, mezi něž někteří výrobci vkládají pauzovací papíry
a fólie.
5.5
Boj s neostrostí
Častým problémem levných skenerů a fotoaparátů je neostrost. Uvádím zde několik metod k částečné
kompenzaci tohoto problému. S případným mírným šumem si opět poradí pomalé selektivní Gaussovo
rozostření. Pro silné doostření je lépe pracovat s gama nekorigovanými prostory.
Při skenování obrázku, který bude doostřován, nezapomeňte na několik pixelů rezervy na okraji obrázku,
aby měl filtr dostatek vzorků pro svou činnost. Okrajové pixely nelze doostřit a je vhodné je oříznout.
32
5.5.1
KAPITOLA 5. TIPY A TRIKY PRO SKENOVÁNÍ
Jednoduché doostření
Funguje na principu zvýšení odlišnosti jednotlivých pixelů od průměrné hodnoty okolí. Filtr je velmi rychlý,
zvýraznění je velmi vysoké. Nepříjemný je pouze zřetelný nárůst šumu v obrázku.
GIMP[78]: „Filtry → Vylepšení → Doostřit . . . ÿ
5.5.2
Maskování neostrosti
Filtr rozostří obrázek Gaussovým rozostřením, poté zjistí rozdíl oproti původnímu obrázku, vynásobí jej zadaným koeficientem a přičte k původnímu obrázku. Ve výsledku je méně šumu, lze doostřit i více rozostřené
obrázky. Je pomalejší než jednoduché zaostření. Při vyšším stupni doostření se však kolem hran objevuje
nežádoucí obrys. Alternativní metoda používá Laplaceův operátor.
GIMP[78]: „Filtry → Vylepšení → Maskovat rozostření . . . ÿ
Convert[87]: -sharpen
5.5.3
Nelineární filtr – zvýraznění hran
Nelineární filtr s hodnotou alfa mezi −0, 1 a −0, 9. Postupuje podobně jako jednoduché doostření, avšak
nepracuje lineárně. Má opět problémy s šumem, ale pro malé stupně rozostření dává velmi dobré výsledky.
GIMP[78]: „Filtry → Vylepšení → NL Filtr . . . ÿ
NetPBM[41]: pnmnlfilt
5.5.4
Iterativní metody
Jde o varianty předchozích metod, avšak doostření není provedeno najednou, ale v několika postupných
krocích (s nižšími nastavenými hodnotami). Za cenu zpomalení získáme mírné vylepšení ostrosti.
5.5.5
Analytické metody a doostření neuronovou sítí
Tyto metody zde uvádím pro úplnost, neboť se s nimi běžně nesetkáváme. Fyzikální proces rozostření je
analyticky nasimulován rovnicemi. Do rovnic je dosazen výstupní obraz jako známá hodnota a původní
obraz jako neznámá. Výsledkem je soustava integrálních rovnic o statisících neznámých, která se pak numerickými metodami vyřeší. Jde o výpočetně náročnou metodu, vyžadující navíc vysoké bitové hloubky.
V běžné praxi není tato metoda k ničemu, ale software pro zpracování výstupu z tomografu používá právě
tento princip.
Podobně pracuje i doostření neuronovou sítí. Na modelových případech se síť učí z rozostřeného obrazu
vytvářet zaostřený. Pokud se poté vyskytne stejný typ rozostření, neuronová síť jej zaostří.
5.5.6
5.6
Ukázky
Pérovky v šedích, černobíle v barvách
Chceme-li skenovat tenké čáry levným skenerem, často se stane, že čáry zcela zmizí. Abychom se tomu
vyhnuli, naskenujeme fotografii v šedích, provedeme doostření a teprve potom převedeme obrázek do čárové
grafiky.
5.6. PÉROVKY V ŠEDÍCH, ČERNOBÍLE V BARVÁCH
Obrázek 5.6: Neostrý obrázek
Detail snímku z předchozí kapitoly. Levný skener
snímá neostře.
33
Obrázek 5.7: Maskování rozostření
Maskování rozostření. Nejsou problémy s šumem,
ale na hranách již dochází ke vzniku jemné kontury.
(GIMP[78]: Maskování rozostření 5,0/0,5/0)
Chceme-li černobíle naskenovat barevnou předlohu, zjistíme, že u mnoha levných skenerů je tmavost
barev v černobílém režimu v rozporu s jejich vnímáním (příliš světlá zelená či tmavá červená apod.). Pak
je lepší obrázek naskenovat barevně a teprve v počítači jej převést do šedí.
V další kapitole dokončíme povídání o skenerech a poté se zaměříme na výstupní zařízení.
34
KAPITOLA 5. TIPY A TRIKY PRO SKENOVÁNÍ
Obrázek 5.8: Iterativní maskování rozostření
Opakováním maskování rozostření s nižšími
hodnotami dosáhneme lepší ostrosti a vznik
kontury oddálíme. (vícekrát GIMP[78]: Maskování
rozostření 1,7/0,12/0)
Obrázek 5.9: Iterativní maskování rozostření v lineárním prostoru
Předchozí operace provedená v lineárním prostoru
(ostatní ukázky byly připraveny v gama
korigovaném prostoru). Je patrná vyšší ostrost
ve stínech. GIMP je však pouze osmibitový, a tak
na tmavých barvách narostl kvantizační šum.
Obrázek 5.10: Doostření
Doostřením obrázku se neostrost též částečně
kompenzuje. Zároveň však narůstá šum.
(GIMP[78]: Doostření 70 %)
Obrázek 5.11: Iterativní doostření
Opakováním slabšího doostření lze při stejném
šumu dosáhnout lepší ostrosti. (mnohokrát
GIMP[78]: Doostření 10 %)
5.6. PÉROVKY V ŠEDÍCH, ČERNOBÍLE V BARVÁCH
Obrázek 5.12: Nelineární filtr
Nelineární filtr. Ostrost je dobrá, opět jsou
problémy s šumem. (GIMP[78]: NL Filtr vylepšení
hran 0,8/1,0)
35
Obrázek 5.13: Iterativní nelineární filtr
Opakování nelineárního filtru s nižšími hodnotami
příliš zlepšení nepřináší. (vícekrát GIMP[78]: NL
Filtr vylepšení hran 0,33/1,0)
36
KAPITOLA 5. TIPY A TRIKY PRO SKENOVÁNÍ
Kapitola 6
Barevná kalibrace skenerů, OCR
Touto kapitolou uzavřeme sérii o skenování návodem k barevné kalibrací skeneru v UNIXu, několika závěrečnými poznámkami a zakončíme přehledem projektů pro OCR s otevřeným kódem.
6.1
Barevná kalibrace skeneru
Barevná kalibrace je postup, kdy se vytváří a používá tzv. barevný profil, který popisuje barevné zkreslení
daného zařízení. K úpravě barev lze použít barevné kalibrační profily, které převádějí barevný prostor zařízení do nezávislého barevného prostoru nebo barevného prostoru jiného zařízení. Při kalibraci obrázku
je možné profily zřetězit (je to výhodné z hlediska minimalizace výpočetních chyb – s profily se pracuje
v plovoucí řádové čárce, zatímco obrazová data jsou omezená na malý počet bitů). Protože barevné kalibraci chci ještě věnovat některou z následujících kapitol, nyní se omezíme jen na ukázky použití programu
SCARSE[148] ve skenovací praxi.
Jak velký vliv na podání barev má barevná kalibrace u levných skenerů, se můžete přesvědčit na této
ukázce (fotografie jste viděli již v předminulé kapitole).
Obrázek 6.1: Sken bez úprav
Obrázek bez úprav, pouze s gama korekcí.
Obrázek 6.2: Kalibrovaný sken
Tentýž obrázek po úpravě programem
SCARSE[148] za použití typového barevného
profilu skeneru bez dalších úprav.
Barevná kalibrace ale patří mezi standardní postupy zejména u vyšší kategorie skenerů. Kvalitní barevné
reprodukce by bez ní byly nemyslitelné.
Pokud se chystáme obrázek upravovat za pomoci barevného profilu, je nutné, aby vstupní barevný
prostor byl přesně stejný, jako byl barevný prostor při tvorbě kalibračního profilu. Pro většinu profilů to
bývá prostor lineární. Všechny úpravy úrovní provedeme až po kalibraci!
37
38
KAPITOLA 6. BAREVNÁ KALIBRACE SKENERŮ, OCR
Obrázek si naskenujeme v lineárním barevném prostoru, jak nejlépe můžeme, a poté jej budeme kalibrovat. Zatím nelze provádět žádnou z níže uvedených úprav přímo v XSane ani jiném programu z dříve
uvedeného přehledu.
Parametry programu SCARSE[148] se mohou lišit podle umístění souborů v konkrétní instalaci a typu
skeneru, volba -vvv zapne upovídaný režim. Program umí pracovat pouze s formátem TIFF. Při práci může
program ohlástit informaci o ztrátě některých barev, které monitor (nebo barevný prostor) již neobsáhne.
Není to závada, ale typický problém převodu barevných prostorů. Řeší ho tzv. mapování gamutu.
6.1.1
Ukázky práce s barevným profilem skeneru
Převod naskenovaného obrázku do nezávislého barevného prostoru sRGB[153] za použití barevného profilu
skeneru (UMAX Astra1200S):
cmap -vvv -p /usr/share/cms/profiles/scanner/umax_astra1200s.icm \
-r /usr/share/cms/profiles/sRGBSpac.icm sken.tif vystup.tif
Převod naskenovaného obrázku do barevného prostoru monitoru za použití téhož barevného profilu skeneru a modelového barevného profilu monitoru (luminofor typu Trinitron, barevná teplota 5000 K, gama 2,2
– tj. vč. dříve zmíněného záměrného snížení hodnoty gama o 10 % v rámci zobrazovacího záměru – rendering
intent):
# vytvoříme pomocný převodní profil
ipb -v -c c -oLab -E1 labng.icm
# podle informace výrobce monitoru (luminofor + barevná teplota)
# zvolíme modelový barevný prostor monitoru a převedeme obrázek
cmap -vvv -p /usr/share/cms/profiles/scanner/umax_astra1200s.icm \
-r labng.icm -r /usr/share/cms/profiles/display/TRIN5022.icm \
sken.tif monitor.tif
rm labng.icm
Převod naskenovaného obrázku do nezávislého barevného prostoru CIE L*a*b* (obrázek v tomto barevném prostoru většina prohlížečů, nejen UNIXových, neotevře, 16bitový CIE L*a*b* pak neotevřou ani
mnohé komerční programy pro DTP studia):
cmap -vvv -p /usr/share/cms/profiles/scanner/umax_astra1200s.icm \
sken.tif lab.tif
Pokud hledáte typový barevný profil pro váš skener, možná ho najdete na stránce profilů na LCMS[107]
nebo někde jinde na Internetu. Chceme-li však ještě lepší výsledek, je lépe si vyrobit barevný profil přímo
pro náš kus skeneru (a jeho současný stav). K tomu potřebujeme barevnou kalibrační tabulku. Tu je možné
zakoupit v prodejnách pro počítačové grafiky nebo jako součást softwarových balíků. Levnou standardní
kalibrační tabulku IT 8.7 s podporou všech projektů s otevřeným kódem nabízí Wolf Faust[42] (s ní byly
vyrobeny i některé profily na uvedené stránce). Pokud byste o ní měli zájem, je možné se v diskusi k článku
dohodnout na společné koupi více kusů (jedná se o maloprodej, dovozce neexistuje).
6.1.2
Studiové skenery
Pokud nám opravdu záleží na kvalitě nějakého obrázku, nemůžeme čekat, že náš malý skener za několik tisíc
korun bude konkurovat špičkovému zařízení za milióny. Možnosti takového přístroje jsou nesrovnatelné –
jeho rozlišení je často i řádově vyšší, ostrost je téměř dokonalá a barevné podání je pod neustálou kontrolou
obsluhy (doufejme). Proto je u náročné předlohy dobré uvážit, zda se nám vyplatí pokoušet se o naskenování
nebo se obrátit na grafické studio, které nám zaručí kvalitu skenu. Sken mohou připravit rovnou v barevném
6.1. BAREVNÁ KALIBRACE SKENERU
39
prostoru CMYK vhodném pro tisk. S některými předlohami nám ani nic jiného nezbyde, neboť domácí
skener je bez šancí (fotografie na rastrovém papíře, sken z filmu na plakát apod.).
Studiové skenery se dělí na dvě kategorie – plošné a bubnové. Plošné pracují s precizní obdobou mechaniky běžných plošných skenerů – lineární snímač projíždějící nad předlohou. Bubnové pracují s rychle
rotujícím průhledným bubnem, předlohu na něm připevněnou postupně osvětluje paprsek laseru a snímá
fotočidlo. Kvalita i cena obou typů je srovnatelná, možnosti mírně odlišné. Cena za sken pro tiskovou
velikost A5 (300 DPI) se ve studiích pohybuje kolem 200 Kč, často i se základní retuší.
6.1.3
Malý skript na závěr
Chcete s pomocí dostupných programů (a s jejich omezeními) dostat ze skeneru maximum? Připravil jsem
pro vás malý skript. Není rozhodně určen na přímé použití – nejdříve si jej vložte do editoru a upravte si
všechny potřebné hodnoty (profil skeneru, umístění profilů). Pak proveďte několik experimentů, kterými
vyberete optimální hodnotu doostření (pokud skener skenuje neostře, vždy jde o kompromis ostrost–šum).
Samozřejmě, že pro různá rozlišení budete muset vytvořit různé skripty s různou mírou doostření. Skript
pracuje jednoduše. Do podadresáře raw naskenujeme obrázky bez jakékoliv korekce a v maximální bitové
hloubce. Spustíme skript a v aktuálním adresáři nalezneme zpracované skeny. Tyto obrázky dále zpracováváme podle potřeby (úprava úrovní, retuš, zápis v jiném formátu) jako obvykle.
#! /bin/sh
echo
echo
echo
echo
echo
"PostScan - skript pro zpracování skenů"
"(c) 2001 Stanislav Brabec, UTX"
"optimalizováno pro:"
"skener
UMAX Astra 1200S"
"rozlišení 300 DPI"
shopt -s nullglob
if [ ! -d raw ]
then
echo "Musíte mít adresář raw se skeny ve formátu tiff!"
exit 1
fi
cd raw
for i in *.tif
do
echo "$i"
# iterativní (3 opakované) Laplaceovo zaostření v lineárním prostoru
convert -sharpen 1.8x0.4 "$i" "../${i}_1tmp$$.tif"
convert -sharpen 1.8x0.4 "../${i}_1tmp$$.tif" "../${i}_2tmp$$.tif"
convert -sharpen 1.8x0.4 "../${i}_2tmp$$.tif" "../${i}_1tmp$$.tif"
# kalibrovaný převod do sRGB
cmap -p /usr/share/cms/profiles/astra1200sr.icm \
-r /usr/share/cms/profiles/sRGBSpac.icm \
"../${i}_1tmp$$.tif" "../${i}_2tmp$$.tif"
rm "../${i}_1tmp$$.tif"
# snížení barevné hloubky na 8bpp
convert -depth 8 "../${i}_2tmp$$.tif" "../$i"
rm "../${i}_2tmp$$.tif"
done
40
KAPITOLA 6. BAREVNÁ KALIBRACE SKENERŮ, OCR
6.2
OCR
Protože v kapitole 1 jsem zcela zapomněl na open source projekty pro optické rozpoznávání znaků (OCR),
nyní to napravuji.
OCR patří mezi oblíbené práce studentů umělé inteligence. K produkčnímu nasazení je ovšem potřebné
dosáhnout alespoň 99,9% rozpoznávání (a i to stále znamená zhruba dva překlepy na stránku). Jiné nároky
na tyto programy má obyčejný uživatel, který při datlování „všema dvěmaÿ neopíše deset řádků ani za deset
minut (o překlepech nemluvě), jiné nakladatel, jenž potřebuje načíst (nebo přepsat) tisícistránkovou knihu.
Algoritmy OCR se dělí na dvě skupiny – neuronové sítě, typické učící se programy, a na heuristické algoritmy,
které hledají písmena podle specifických znaků. Dobrý OCR program často obě metody kombinuje.
Pod názvem GOCR[15] (nebo též JOCR) se skrývá asi nejznámější projekt z této oblasti. K rozpoznávání
znaků používá netriviální heuristiku. K práci nepotřebuje GUI, rychlostí však nevyniká. K tomu, aby uměl
česky, mnoho nechybí – dopsat podporu pro výstup ISO-8859-2 či Unicode, a vytvořit heuristiku pro háček
(heuristiku pro ostatní diakritiku již program obsahuje). Na čistém textu z laserové tiskárny dosahuje téměř
použitelného výsledku (jedna chyba na řádek), u strany ze starší knihy je chyba bezmála v každém slově.
Velmi zajímavým projektem je Clara OCR[58]. Program je založen na neuronové síti. Podpůrné funce
hledají diakritiku, nečistoty a dělí text do slov. Aby podporoval češtinu, chybí mu tabulka české diakritiky
(informace o znacích a jejich možné diakritice) a převodní tabulka pro ISO-8859-2. Je též nutné opravit
inicializaci XKB. Ze zajímavých funkcí uvedu možnost přeučení známého znaku.
Opuštěný xocr[10] je též založený na neuronové síti (podařilo se mi zprovoznit pouze verzi 4.1[6]; není
mi jasné, jde-li o freeware[10] nebo shareware[21]). Je ochoten naučit se české znaky, pokud se mu smaže
jeho databáze písmen a učí se od počátku. Opět je nutné opravit inicializaci XKB. Uživatelské rozhraní
nepřívětivé, v určitých místech padá, na disku však po sobě zanechává rozpoznaný text. Chybí rozpoznávání
slitků (musí se učit vcelku) a nečistot; není-li předloha dokonale čistá, je rozpoznávání zcela nepoužitelné
– jakákoliv nečistota jej zmate na řádek i více. Též požadavky na vodorovnost řádků jsou vysoké.
NistOCR[91] je akademický projekt na rozpoznávání ručně psaných textů, který se po šesti letech dočkal
další verze.
Cal Poly OCR library[21] je další OCR knihovna, napsaná na akademické půdě, které již devět let čeká
na využití.
Program OCRchie[28] se mi nepodařilo zkompilovat, projekt WOCAR[36] ani nalézt (přeci jenom se to
podařilo, hledejte na [18] – pozn. redakce).
Zajímavé jsou OCR FAQ[55] a OCR Resource List[85].
Pominuli jsme zde specializované OCR projekty, jako je rozpoznávání čínštiny, tibetštiny, čárových kódů
či not.
6.2. OCR
41
Obrázek 6.3: Text pro ocr
jednak ze slonové kosti, jednak ze zlata, ale t?é json
vyrobeny ze samého cedrn, V této t?hliei n?la mat ka
K?sela, potomního korint bskébo t?ana, když ho po narození velmi borlivě bledali Bakebiovei, Napaměť zaehránění se Kypselův rod pojmenoval na Kypselovee a t?bl tet věnovali do Olympie, tehdejšt Ko?tané nazýv v t?hliee kypselai, Také dítět t byloprý dáno jménopo tomto,
První kroky jsou vždy těžké. (text z knihy Pausaniás: Cesta po Řecku, Praha, 1972)
42
KAPITOLA 6. BAREVNÁ KALIBRACE SKENERŮ, OCR
Kapitola 7
Tiskárny, tiskový proces
Pokud není výsledek určen jen pro obrazovky, stojí tiskový proces na konci grafického řetězce. Touto
kapitolou se přesuneme k výstupním zařízením a tisku. Abychom věděli, co, proč a jak připravujeme,
přiblížíme si v hrubých rysech tiskový proces a přípravu podkladů pro něj.
Dnes se podíváme na různé možnosti přípravy tiskovin. Nebudeme se zabývat detaily, ale spíš tím, jaký
má technologie vliv na nás, počítačovce.
Běžná výstupní zařízení se dělí do několika kategorií s odlišným způsobem přípravy tiskovin. Dále je
rozdíl mezi přístrojem, který nám stojí doma na stole (musíme používat operační systém, pro který existuje
ovladač, nebo si vybrat zařízení, které funguje v Linuxu), nebo někde ve studiu (v tom případě musíme
soubor přinést tak, aby ho přečetli – médiem počínaje a tvorbou souboru konče).
7.1
Počítačové tiskárny a digitální tiskové stroje
Jedná se o periférie, které se napojují přímo na počítače. Tisk na nich se vyplatí v malých sériích až
do několika set kusů.
Některé používají svůj vlastní proprietární protokol, a tudíž se stávají ve světě otevřeného kódu nepoužitelné. Ostatní většinou používají některý z běžných jazyků tiskáren:
PJL (Printer Job Language) – jazyk pro nastavení tiskárny a řízení tisku patří do kategorie JCL (Job
Control Language). Slouží pouze pro nastavení tiskáren (podavač, dávkování toneru, čítač stránek,
displej tiskárny apod.). Tisknout neumí (na to volá interpreter jiného jazyka – např. PCL, PXL nebo
PostScriptu). Je užitečné se seznámit s jeho základy. Jazyk je podporován tiskovými procesory (např.
ifhp[52]) a různými grafickými nastavovacími panely.
PCL (Printer Control Language) – nejběžnější jazyk levných tiskáren (často v kombinaci s PJL), zavedený
firmou Hewlett-Packard[84]. PCL je poměrně nízkoúrovňový jazyk pro práci s textem a grafikou. Pro
znakové sady používá formát Intellifont, nověji též TrueType. Jazyk je podporován množstvím aplikací
(např. Ghostscript[77], pbmtolj z NetPBM[41], ovladače v TEXu).
PXL (Printer eXtended Language) – je pokračovatelem těchto tiskových jazyků. Umí již pracovat s grafickými elementy nezávislými na rozlišení. Podporuje jej například Ghostscript[77], tiskne rychleji než
PCL, ovšem podpora složitější grafiky není (zvlášť v jeho starších verzích) vhodná pro ostrý provoz.
Specifikace jazyků PCL/PXL/PJL lze objednat jako knihy, na Internetu kolují více či méně kompletní
popisy těchto jazyků. Nejsme-li vývojáři ovladačů, vystačíme si v praxi jen s několika málo příkazy
pro nastavení tiskárny.
Esc-P2 – standard, vytvořený firmou Epson[72]. Schopnostmi se podobá PCL. Podporují jej např. ovladače
pro Ghostscript[77] nebo escputil z balíku gimp-print[25].
43
44
KAPITOLA 7. TISKÁRNY, TISKOVÝ PROCES
PostScript – jazyk vytvořený firmou Adobe[46]. Na rozdíl od výše uvedených jazyků tiskáren se jedná o plnohodnotný programovací jazyk pro popis stran, který umí zcela odstínit výstupní zařízení od tiskové
úlohy. Jeho rozšíření na levné tiskárny bránila do nedávné doby cena dostatečně rychlých procesorů
(a zřejmě i licenční politika názvu PostScript). Pro své schopnosti se přesto stal populárním nejen
v tiskárnách, ale i jako přenositelný jazyk pro popis stran. Jeho popis[33] je volně dostupný. PostScript je zároveň základním tiskovým jazykem v UNIXu a věnujeme mu proto některou z následujících
kapitol.
PDF (Portable Document Format), další formát z dílny Adobe[46], sice zřejmě není nativním jazykem
žádné tiskárny, ale vzhledem k PostScriptovému paradoxu proprietárních operačních systémů (viz
dále) se PDF často stává jedinou možností, jak dodat soubor pro digitální tiskový stroj.
HP-GL (Hewlett-Packard Graphics Language) se do tiskáren dostal spíš z obchodních důvodů. Na řízení
tiskáren se sice nehodí, ale zato tiskárna může sloužit jako emulátor souřadnicového plotru. Pracuje
s ním hp2xx[79].
Narozdíl od proprietárních systémů nejsme při výběru tiskárny pro grafickou práci omezeni na tiskárny
vybavené PostScriptem. Ghostscript[77] volaný z tiskového programu zastane stejnou úlohu. Je však třeba
zvolit tiskárnu s dostatečnou kapacitou paměti (A4 při 600 DPI vyžaduje pro jemnou celostránkovou grafiku
zhruba 5 MB paměti).
7.2
PostScriptový paradox proprietárních operačních systémů
Tento paradox nám může znepříjemnit život – například přijdete-li si vytisknou pár stránek ze souboru
na tiskárně A3 ve studiu, doma tuto nemajíce. Uživatel UNIXu si nedokáže představit operační systém
bez příkazu cat, a tak mu může připadat zcela absurdní, že v mnoha studiích dostane tuto odpověď:
„PostScriptový soubor přece nelze na naší PostScriptové tiskárně vytisknout!ÿ Mnozí uživatelé Windows
považují vše, co se děje v okně MS-DOSu, za černou magii, a proto nemusí být vůbec jednoduché přemluvit
pracovníka studia k použití příkazu copy. Podobně pohlíží mnohý uživatel Apple na soubory zdarma stažené
z Internetu, byť by uměly „ jenÿ zkopírovat soubor na tiskárnu.
Obávám se, že s vývojem uzavřených systémů těchto paradoxů přibývá . . .
7.3
Ofsetový tisk
Je nejběžnějším tiskovým systémem pro větší a velké náklady. Základní předlohou pro ofsetový tisk je
tzv. kovolist. Je potažen světlocitlivou vrstvou a po expozici a odleptání se přenáší ulpělá tisková barva
(z neosvětlených a neodleptaných míst) přes gumový válec na papír. Existují dva způsoby, jak připravit
kovolist. Pokud máme některou ze speciálních High-End laserových tiskáren (za cenu 200 000 Kč a výš),
stačí vložit kovolist do podavače tiskárny . . . Pro většinu z nás však bude aktuální příprava kontaktní kopie
na průhledném materiálu. Ta putuje do tiskárny na montážní stůl, kde naše stránky poskládají do podoby
vhodné pro tisk archů. Aby se zabránilo neostrosti vlivem rozptylu světla uvnitř fólie, musí být předloha
na spodní části fólie, tzn. zrcadlově převrácená. Fólie musí mít dobré krytí černé barvy a zároveň musí
být dostatečně průsvitná (to vše v ultrafialové barvě).
7.4
Sítotisk
Přestože je technologie přenosu předlohy jiná, příprava je stejná, s jediným rozdílem – předloha není
zrcadlově převrácená. Sítotisk se používá na potisk jiných než papírových materiálů.
7.5. HLUBOTISK, LITOGRAFIE, RAŽBA, TAMPÓNOVÝ TISK
7.5
45
Hlubotisk, litografie, ražba, tampónový tisk
Jedná se o další možné technologie (nejen tiskové). Opět připravujeme předlohy na průhledné fólii. Zde
se však technologie různí, a proto si předem ověříme, zda není třeba je zrcadlově převrátit nebo tisknout
inverzně.
7.6
Copy printer
Jedná se o nejméně náročnou tiskovou technologii – je to vlastně zvláštní druh kopírky navržený pro vyšší
počty kopií. Pokud neumí tisknout přímo ze souboru, tiskne většinou z předlohy na papíře. Papír by měl
být bílý bez tmavých vláken, zrcadlově se nepřevrací.
7.7
Příprava průhledné předlohy pro ofsetový tisk
Kvalitu krytí stoprocentně splňuje osvitová jednotka, která je pro předtiskovou přípravu stavěná a jejíž
laser svítí předlohy na černobílý filmový pás. Vzhledem k její ceně a prostorovým požadavkům většina z nás
v takovém případě použije služeb osvitových studií (za jeden plát A4 zaplatíme kolem 70 Kč, cena se liší
podle místa a rozlišení). Pokud se jedná o barevnou stránku, vynásobíme si částku čtyřmi (každý barevný
výtažek znamená jeden plát). Standardním komunikačním jazykem osvitových jednotek je PostScript (často
se nachází ve vedlestojícím počítači).
Slevíme-li z nároků, můžeme se spokojit i s průhlednou fólií z laserové (nebo LED) tiskárny. Za
cenu nižšího rozlišení, horšího podání fotografií (zvlášť ve světlých odstínech) snížíme náklady na stránku
A4 zhruba na 12 Kč (cena fólií kolísá mezi 8–30 Kč). Kvalita však bohatě stačí na běžné tiskoviny – vizitky,
noviny s obrázky atd. Při nákupu fólií je třeba rozlišovat mezi fóliemi pro zpětný projektor a fóliemi pro
tiskové předlohy.
Chceme-li ušetřit ještě víc, můžeme předlohu natisknout na pauzovací papír z laserové (nebo
LED) tiskárny. Oproti fólii rastry poněkud ztratí na pravidelnosti, velké plochy jsou hůř vykryté. Kvalita však stačí na běžnou knižní produkci i jednodušší tiskoviny. Cena materiálu poklesne zhruba na 3 Kč
za stránku A4.
Důležité je před tiskem nastavit maximální hustotu tisku, kterou tiskárna umí. To je možné buď pomocí
specializovaného programu, nebo předřazením následující hlavičky v jazyce PJL (<ESC> je znak Escape;
různé tiskárny mají různou nejvyšší hodnotu DENSITY – tiskárna to sdělí příkazem @PJL INFO VARIABLES)
před vlastní tiskový soubor PCL:
<ESC>%-12345X@PJL COMMENT maximal density for HP LaserJet 6P
@PJL RESET
@PJL SET ECONOMODE=OFF
@PJL SET DENSITY=5
@PJL ENTER LANGUAGE=PCL
Je třeba upozornit, že ne každá laserová tiskárna vytváří dostatečně kryté předlohy. Záleží
na tom, jaký toner se v tiskárně používá. Vrstva toneru, která na kancelářském papíře vypadá jako dokonale
černá, může být na pauzovacím papíře natolik průsvitná, že jej nelze použít k přípravě kovolistu. Nechcemeli experimentovat se ztmavováním pomocí acetonových par, je lépe koupit tiskárnu, která dává dostatečně
krytý výsledek.
7.8
Tiskové značky
Při tisku je třeba předlohu opatřit několika druhy značek. Většinou se nacházejí mimo formát publikace
a při zpracování budou oříznuty. Ořezové značky, jak název napovídá, slouží ke správnému nastavení řezačky. Nacházejí se v rozích dokumentu. Soutiskové značky jsou nutné pro správný soutisk barev. Jedná se
46
KAPITOLA 7. TISKÁRNY, TISKOVÝ PROCES
Obrázek 7.1: Ukázka tiskových značek
o křížek nacházející se poblíž středů hran. Bigovací a středové značky slouží k nastavení správného místa
ohybu papíru v bigovacím stroji. Barevné značky pak slouží ke zběžné kontrole barev. Popisek informuje
montážníka o čísle stránky a barvě. Ke kontrole úplnosti knihy se občas používají archové značky.
Pokud program neumí značky generovat (docela často), je možné je do programu nakreslit ručně. Lze též
použít různé značkovací PostScriptové hlavičky. Nejlépe je na tom TEX, kde je téměř ke každému formátu
na výběr několik programů pro tvorbu značek.
7.9
Archová montáž
Vezměte si arch papíru. Přeložte jej napůl podél kratší osy a pak ještě jednou kolmo k prvnímu skladu.
Rozevřete jej jako knihu, prvním skladem nahoru. Vezměte druhý arch, toto zopakujte a položte jej na první.
Nyní očíslujte stránky složeného „sešitkuÿ od 1 do 16 a oba archy poté rozložte. Před sebou máte ukázku
nejběžnější archové montáže. U ofsetového tisku tuto práci provádí většinou montážník. Digitální montáž
je však rychlejší a u digitálního tisku je dokonce nutná.
V UNIXu máme hned několik možností, jak archovou montáž provést. Univerzálním nástrojem pro
strukturovaný PostScript jsou psutils[67]. V TEXu pak máme možnost provést archovou montáž úpravou
výstupní rutiny (umí to např ConTEXt, ale i jiné formáty).
Pro správný výsledek montáže je třeba zadat ořez v hlavě stránky (typicky 3 mm na každou stranu)
a hodnotu, o kterou je nutné od sebe oddálit vnější stránky archu (typicky 0,3 mm na list).
Při přípravě brožovaného výtisku ještě přidáváme 2–3 mm na ořez ve hřbetu. Pořadí stran pro brožování
se též může lišit od výše uvedeného.
7.9. ARCHOVÁ MONTÁŽ
47
Obrázek 7.2: Ukázka archové montáže
48
KAPITOLA 7. TISKÁRNY, TISKOVÝ PROCES
Kapitola 8
PostScript
Programovací jazyk PostScript se stal univerzálním jazykem pro komunikaci grafických aplikací. Používají
ho tiskárny a tiskové procesory, je základním (a dlouhou dobu byl jediným) výměnným formátem vektorové
grafiky, v UNIXu je téměř výhradním jazykem pro tisk z aplikací. Proto o něm budou následující kapitoly.
Nečekejte však učebnici (ta by vydala na celou knihu), ale spíše rady k jeho užívání.
Jazyk PostScript byl navržen firmou Adobe[46] v roce 1985 jako jazyk pro popis stránek. Díky svým
rozsáhlým možnostem se však brzy stal i formátem používaným k přenosu obrázků mezi aplikacemi.
Jedná se o interpretovaný jazyk, založený na práci se zásobníky. Jeho základními grafickými objekty jsou
pak cesty, které lze obtahovat a vyplňovat, bitové mapy, rastry, vzorky a písma. Téměř celá jeho specifikace
je volně dostupná na Internetu v publikaci PostScript Language Reference Manual (PLRM)[33].
Interpret PostScriptu postupně prochází kód, interpretuje jeho příkazy a provádí vykreslování (rastrování) do výstupní paměti. Interpretu se proto také někdy říká RIP (Raster Image Processor) a zmíněnému
procesu pak slangově „ripováníÿ.
Pro ty, kteří PostScript nikdy neviděli, uvádíme lehce komentovanou malou ukázku. Standardní souřadný systém začíná vlevo dole.
%!
% nastavení velikosti média
1 dict dup /PageSize [40 40] put setpagedevice
% definice zkratky pro příkaz curveto
/c { curveto } def
% uložíme na zásobník dva parametry
% příkaz translate je vyzvedne a provede
% nastavení souřadného systému
-15.7606 -35 translate
% nová cesta
newpath
% posun pera
46.3294 35 moveto
% několik Bézierových křivek:
% curveto odebírá ze zásobníku šest parametrů:
% x1 y1 x2 y2 x3 y3
% pero se přesune do [x3,y3]
% s~použitím řídících bodů [x1,y1] a [x2,y2]
29.2607 39.8018 16.8406 59.5148 15.7606 65.2856 c
17.6206 70.885 22.9607 73.9362 25.5407 74.355 c
27.5207 73.0986 31.7207 67.0067 32.5607 64.2173 c
31.3007 62.3182 29.0207 61.0105 27.4007 60.3524 c
49
50
KAPITOLA 8. POSTSCRIPT
27.8207 58.6772 35.5594 48.1696 41.1854 46.6044 c
41.7839 48.2297 43.1597 50.5775 45.0735 51.8417 c
47.8843 51.0591 53.9883 46.8451 55.305 44.9188 c
54.9459 42.3302 51.8936 36.9724 46.3294 35 c
% uzavření cesty
closepath
% vyplnění oblasti ohraničené cestou
fill
% vykreslení stránky
showpage
Obrázek 8.1: Výstup ukázky PostScriptu
Další specifikační publikací je kniha Type 1 Font Format. Tento formát byl dlouho tajný. V roce 1988
firmě Adobe[46] hrozil bojkot firem Microsoft[109] a Apple[50]. Dlouholetý boj skončil kompromisem. Formát Type 1 byl uvolněn, mezitím však zmíněné firmy vytvořily další formát písem – TrueType. Ten se
na oplátku dostal do PostScriptu pod označením Type 42.
Třetí knihou, která je plná ukázek, je Adobe PostScript Tutorial and Cookbook (s výjimkou příkladů
k dispozici pouze jako kniha).
Přestože PLRM je v podstatě návodem na napsání interpretu PostScriptu, firma Adobe nikdy neuvolnila
referenční implementaci.
8.1
PostScript Level 1, PostScript Level 2, PostScript LL3
Ve vývoji PostScriptu existují tři mezníky.
PostScript Level 1 (1985): Jazyk pro popis stran pro černobílé tiskárny. Dodnes narazíme na zařízení,
která podporují jen PostScript Level 1.
PostScript Level 2 (1990): Ještě před vznikem tohoto standardu se objevila nutnost rozšíření. Vznikly
tak implementace jazyka Level 1 s podporou barev, stejně jako různá rozšíření závislá na zařízení
(PostScript Level 1 neměl příkazy pro změnu velikosti stránky, nastavení podavačů či ovládání řezaček).
Aby se napříště zabránilo živelnému přidávání příkazů, nebyly žádné z těchto příkazů (s výjimkou
podpory barev) zaneseny do nového standardu (nicméně ve většině interpretů doposud tyto příkazy
jsou), ale namísto toho vznikla nová datová kategorie – zdroje. PostScript tak mohl být snadno
a kompatibilně rozšířen o podporu speciálních funkcí. Navíc přibyla možnost kódovacích a kompresních filtrů (jpeg DCT, lzw, CCITT aj.), které umožnily významně zmenšit zvlášť velikost bitmap.
Přibyla také podpora nezávislých barevných prostorů. Největší vnitřní změnou Level 2 je pak podpora
úklidu paměti (Garbare Collection), celkový počet změn je však o mnoho vyšší.
PostScript LL3 (Language Level 3, 1997): Do LL3 přibylo mnoho dalších funkcí. Mezi hlavní patří
podpora přechodů (Gouraudovo stínování), zobecnění rastrovacích funkcí (funkce SuperScreen čtyřnásobně zvýší počet vykreslených odstínů na tiskárně s malým rozlišením), interpretace mnoha dalších
typů písem či práce s vícesložkovými barevnými prostory. Pro nás je též důležité, že se do standardního
kódování znakových sad dostaly i české znaky.
8.2. CO POSTSCRIPT NEUMÍ
51
Display PostScript (DPS): Ještě před vznikem Level 2 vznikla speciální mutace PostScriptu pro obrazovkové servery. Většina jeho funkcí byla zařazena do Level 2, ale několik dalších, které nemají pro
tisk význam, zůstalo jako rozšíření (podpora více vláken, rolování v oknech apod.).
Portable Document Format (PDF): Interpretace postscriptového kódu je poměrně složitá a relativně
pomalá. PostScript je navíc textový formát, což zvyšuje velikost souborů. Formát PDF přebral ideu
popisu stránky, ovšem vyřadil všechny programovací konstrukce. Naproti tomu přidal podporu komprese celého kódu, kryptografie, náhledů stran, hypertextových odkazů, apletů, barevných profilů
ICC[60] aj. Stal se de facto standardem pro vystavování zformátovaných dokumentů na síti.
8.2
Co PostScript neumí
Od počátku byl PostScript navrhován tak, aby při své práci nemusel udržovat celý obrázek v maximální
bitové hloubce, ale pouze v bitové hloubce výstupního zařízení. Do obrazové paměti se ukládá již vyrastrovaný obraz. To v případě typického jednobitového výstupu znamená šestnáctinásobnou úsporu paměti. To,
co jednou do výstupní paměti vykreslí, již nikdy nečte zpět. Z tohoto návrhu však vyplývají jistá omezení:
PostScript nepracuje s průhledností. Je to jednoduchý fakt. Předchozí objekt buď zcela překryje,
a nebo ho nechá beze změny. Z nuly či jedničky ve výstupní paměti nelze v případě průhlednosti
odvodit novou hodnotu.
PostScript nepodporuje Floyd-Steinbergův rozptyl. Algoritmy difúze chyby, ke kterým FS patří,
totiž vyžadují znalost výsledné hodnoty okolních pixelů ve vstupní bitové hloubce, což PostScript
neumožňuje. Místo FS rozptylu je však možné použít tzv. stochastické rastry, které dávají podobný
výsledek, ale pracují na jiném principu. Pokud na FS rozptylu trváme, je možné ho implementovat
jako zákaznickou rastrovací funkci (ovšem s obrovskými paměťovými nároky).
8.3
PostScript a Ghostscript
Řekne-li se PostScript a UNIX, nelze neříci i Ghostscript[77]. Jeho vývoj je podporovaný firmou Aladdin
Enterprises[48] a nyní též firmou Artifex Software[51] (ta vyvíjí komerční OEM verze). Největší část kódu
napsal L. Peter Deutsch.
Dnes zahrnuje implementaci PostScriptu Level 2 a téměř kompletní implementaci LL3. Ghostscript si
poradí i s PDF a DPS. Většina ovladačů je na vysoké úrovni, připravena na ostré nasazení v praxi.
Ghostscript používá i mnoho jiných aplikací – tiskové ovladače, převodníky grafických formátů, grafické
servery, prohlížeče a další.
Možnosti Ghostscriptu však nekončí pouhým rastrováním. Pomocné nástroje umějí mnohem víc: zjednodušovat postscriptový kód, převádět mezi PostScriptem, zapouzdřeným PostScriptem a PDF, počítat
ohraničovací rámy apod.
8.4
Strukturovaný PostScript, DSC
Postscriptové ovladače a prohlížeče často potřebují provádět s postscriptovým souborem různé operace –
vybrat jednu stránku, rotovat ji, rozdělovat stránky podle vlastností . . . Samotný postscriptový kód v tom
není nijak nápomocen, a tak by musela každá taková aplikace rozumět celému postscriptovému kódu, interpretovat ho a poté vytvářet nový kód, což by bylo značně nepraktické. Naštěstí je většina postscriptových
kódů vytvářena strojově a lze je poměrně snadno sestavit tak, aby se na začátku souboru nacházel „definiční blokÿ (je to poněkud nepřesné označení, „definiční blokÿ se ještě dělí na další pododdíly) a každá
stránka tvořila samostatný objekt (a na konci byl ukončovací blok). Aby i nepostscriptové aplikace mohly
snadno získat informaci o této struktuře, přidají se do PostScriptu komentáře, to jsou ony DSC (komentáře
52
KAPITOLA 8. POSTSCRIPT
struktury dokumentu – Document Structure Comments). Pokud dokument splňuje podmínku nezávislosti
stran a zároveň obsahuje DSC, říkáme, že se jedná o strukturovaný PostScript. Takový PostScript můžete
prohlížet napřeskáčku v prohlížeči, vybrat pro tisk jen zvolené strany apod. Většina aplikací generuje právě
takový PostScript (pozor na některé, jejichž výstup se sice tak tváří, ale ve skutečnosti strukturovaný není
– např. výstup z MS-Wordu).
Zde je ukázka strukturovaných komentářů PostScriptu (vytvořeny programem dvips podle starší verze
DSC-2.0):
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software ...
%%Title: popisky.dvi
%%Pages: 1
%%PageOrder: Ascend
%%BoundingBox: 0 0 936 86
%%DocumentFonts: CenturyExpdCEBTBoldItalic CenturyExpdCEBTItalic
%%EndComments
%DVIPSCommandLine: dvips -Plino1200 -D1800 -tfilm1 popisky
%DVIPSParameters: dpi=1800, compressed
%DVIPSSource: TeX output 2001.09.24:2244
. . . Zde se nacházejí definiční hlavičky . . .
%%EndProlog
%%BeginSetup
. . . Zde se nacházejí nastavovací hlavičky . . .
%%EndSetup
%%Page: 1 1
. . . Zde se nachází popis stránky 1 . . .
%%Trailer
. . . Zde se nachází ukončovací sekvence . . .
%%EOF
Pokud soubor naproti tomu nezačíná „%!PS-Adobe-ÿ, ale třeba jen „%!ÿ, značí to, že se jedná o nestrukturovaný PostScript.
V dalších kapitolách si ještě povíme více o EPS, PPD, mylných názorech na PostScript a o nekompatibilitách mezi aplikacemi.
Kapitola 9
Postscriptové formáty a písma
Kolem Postscriptu se rojí tolik názvů, až se zdá, že se nejedná o jeden jazyk. Vysvětlíme si, čím se od běžného PostScriptu liší EPS, k čemu jsou soubory PPD, AFM a jaké existují formáty písem. Na ukázce si
předvedeme, jak se jednotlivé formáty liší.
9.1
EPS, EPSF, EPSI
Obyčejný PostScriptový soubor, jaký se používá na tisk, není příliš vhodný pro zařazení do jiného dokumentu – v jeho hlavičce se totiž většinou nacházejí příkazy pro nastavení zařízení a souřadného systému,
které by narušily celý zbytek dokumentu. Proto vznikl nový formát – je jím zapouzdřený PostScript (Encapsulated PostScript – EPS). Od normálního strukturovaného PostScriptu se příliš neliší – jediný zásadní
rozdíl je v tom, že neobsahuje žádné příkazy pro nastavení zařízení či souřadného systému a nemanipuluje
s interpretem tak, aby to ovlivnilo zpracování ostatních částí dokumentu. Některé PostScriptové příkazy
tedy formát EPS zcela zakazuje, jiné omezuje. Aplikace pro EPS připraví prostředí (souřadný systém) tak,
aby byl obrázek ve správné poloze a velikosti. K tomu jí napomáhá informace o ohraničujícím rámu (Bounding Box), která se nachází ve strukturovaných komentářích každého EPS souboru. Pokud nějaká aplikace
jazyku PostScript nerozumí (většinou se to týká proprietárních programů), nedokáže zobrazit náhled PostScriptu, a ta, která mu rozumí, zobrazí předrastrovaný náhled rychleji. Proto vznikly varianty formátu
EPS obsahující náhled. Jsou to EPI (přikládá náhled binárně v běžném obrázkovém formátu ve formě
dalšího zapouzdření EPS souboru; umí s ním pracovat epstool[65], dnes součást balíku gsview[66]), a EPSI
(přidává náhled ve formě PostScriptového komentáře; umí jej např. pbmtoepsi z NetPBM[41] a hlavička
ps2epsi z Ghostscriptu[77]).
Pokud soubor začíná „%!PS-Adobe-verze EPSF-verzeÿ, značí to, že se jedná o zapouzdřený PostScript.
Protože EPS je formou strukturovaného PostScriptu, aplikace se mohou orientovat podle strukturovaných
komentářů. Pokud například použijeme dva obrázky se stejnými definičními hlavičkami nebo písmy, aplikace
může tyto přesunout mezi své vlastní hlavičky a do postscriptového souboru je zařadit pouze jednou.
9.2
PPD
Přestože PostScript je jazyk na zařízení nezávislý, je občas dobré znát možnosti a doporučené nastavení
konkrétního zařízení. K tomu slouží speciální (i lidsky čitelný) formát popisu postscriptové tiskárny (PPD
– PostScript Printer Description). V něm si aplikace najde informaci o velikosti a typu média, rozlišení,
bitové hloubce, barevnosti, rastrech, osazené paměti, podavačích a podobně.
Na následujících řádcích ze souboru PPD se například dozvíme, že tiskárna tiskne implicitně na papír
formátu Letter, ale v uvozovkách uvedená postscriptová sekvence ji přepne na formát A4.
53
54
KAPITOLA 9. POSTSCRIPTOVÉ FORMÁTY A PÍSMA
*DefaultPageSize: Letter
*PageSize A4: "1 dict dup /PageSize [595 842] put setpagedevice"
Aplikace si tuto informaci přečte a do postscriptového souboru pak přidá následující řádky:
%%BeginFeature: *PageSize A4
1 dict dup /PageSize [595 842] put setpagedevice
%%EndFeature
9.3
AFM
Podobně jako u strukturovaného PostScriptu je i u písem potřebné, aby aplikace měly podrobné informace
o postscriptovém písmu, které mají použít. Je třeba znát velikost jednotlivých písmen, páry pro jejich
podřezávání (kerning), svaznicové skupiny, důležité písmové linie, doporučené mezerování, názvy znaků
a jejich umístění v kódovém vektoru – souhrnně se všechny tyto informace nazývají metrika písma. K tomu
slouží další formát – Adobe Font Metrics (AFM). Tento soubor je jediným zdrojem některých informací
(svaznice, podřezávání), které vlastní postscriptový interpret nepoužívá. Proto by měl být (ale není) součástí
distribuce všech písem.
Formát Multiple Master (umožňuje vygenerovat několik písmových řezů z jediného zdrojového kódu)
má speciální formát metriky MMAFM. Pokud aplikace neumí písma Multiple Master použít přímo, lze
pomocí mmtools[99] vygenerovat jejich instanci.
9.4
Formáty písem
V závorce je vždy uvedena verze PostScriptu, ve které byl specifikován.
9.4.1
Type 0 (2)
Kompozitní písmo sestavené hierarchicky z jiných písem. Používá se hlavně pro složitá písma, japonštinu
a čínštinu.
9.4.2
Type 1 (1)
Standardní kódovaný postscriptový formát. Běžný distribuční formát většiny písmolijen. Úsporný binární
formát .pfb interpret PostScriptu nepřečte přímo, ale je jej třeba nejdříve dekódovat (Ghostscript to umí,
pokud jej čte ze samostatného souboru). Na nízkoúrovňovou manipulaci s těmito písmy slouží t1utils[99].
Pokud písmo splňuje ještě další omezení, která umožní používat jej i v aplikacích bez kompletního postscriptového interpretu (např. rastrovací procesory okenních systémů), mohou nést příponu .pfa, binárně
zapouzdřené .pfb. Podobně je omezen i formát Multiple Master. Obecné písmo Type 1 mívá příponu .gsf.
Písma Type 1 mohou být buď obrysová, kdy zadáváme obrysovou linii písma (většina běžných písem),
nebo čárová, kdy zadáváme středovou linii písma a tloušťku čáry (např. písmo Courier).
Kódovaný binární formát je v podstatě velmi omezenou obdobou běžného PostScriptu, obsahuje však
navíc některé speciální funkce. Nejdůležitější z nich je zeštíhlení (hinting) písma – pokud je obrysové písmo
vykreslováno v malém rozlišení, mohlo by se snadno stát, že tloušťky dvou čar, které byly zamýšleny
jako stejně tlusté, se budou vlivem numerických chyb lišit. Proto se do kvalitních písem vkládají speciální
informace o zamýšlených tloušťkách důležitých čar.
Následující ukázka je dekryptovaná definice písmena „Iÿ v písmu Adobe Helvetica. Pro větší názornost
jsem některé operátory rozepsal.
9.4. FORMÁTY PÍSEM
55
/I {
% znakový vektor (metrická informace)
91 278 hsbw
% vertikální zeštíhlení, spodní okraj písmena (rozsah <0,21>)
21 -21 hstem
% vertikální zeštíhlení, horní okraj písmena (rozsah <698,718>)
718 -20 hstem
% horizontální zeštíhlení, dřík (rozsah <0,97>)
0 97 vstem
% podobnými operátory jako v~běžném PostScriptu vykreslíme obdélník
% (souřadnice jsou relativní)
97 718 rmoveto
-97 hlineto
-718 vlineto
97 hlineto
closepath
% konec znaku
endchar
} def
9.4.3
Type 2 (3)
Compact Font Format (CFF)
9.4.4
Type 3 (1)
Formát písma popsaný standardními postscriptovými operátory. Je poměrně jednoduché jej vytvořit, a tak
je oblíbeným formátem pro jednoduchá nebo bitmapová písma. V komerční oblasti se používá na barevná
akcidenční písma. Ukázku tohoto písma najdete na konci této kapitoly mezi příklady.
9.4.5
Type 9, 10, 11, 32 (3)
tzv. CIDFonts.
9.4.6
Type 14 (3)
Formát Chameleon.
9.4.7
Type 42 (3) a TrueType
Type 42 je zapouzdřený soubor TrueType. Type 42 se nepoužívá k distribuci, ale bývá většinou konvertovaný při tisku z nativních TrueType písem. Ghostscript k tomuto zapouzdření používá hlavičku gs ttf.ps.
Ke konverzi TrueType na Type 1 (potřebné pro nižší verze PostScriptu) pak slouží ttf2pt1[113]. Písma
TrueType jsou oblíbená zvlášť v desktopech. Zdá se, že pro zařízení s malým rozlišením mohou dávat lepší
výsledky než Type 1.
9.4.8
Intellifont
Jde o starší vektorový formát firem Agfa a Compugraphic, používá křivky 2. stupně a v PostScriptu
není přímo podporován. Místo podřezávání používá jakýsi „obrysový hřebenÿ, kterým odměřuje vhodnou
vzdálenost mezi písmeny. Má podporu pro zeštíhlení. Kódování znaků je šestnáctibitové a zcela atypické.
Stal se nativním formátem systému AmigaOS a tiskáren s jazykem PCL, dnes je však již na ústupu.
56
KAPITOLA 9. POSTSCRIPTOVÉ FORMÁTY A PÍSMA
9.4.9
METAFONT
Jde o formát, který vznikl během vývoje programu TEX. V PostScriptu není přímo podporován – jeho
možnosti jsou nesrovnatelně vyšší, než je tomu u kteréhokoliv jiného jazyka – jde nejen o plnohodnotný
programovací jazyk, ale má i plnou podporu vektorové aritmetiky, všech typů Bézierových křivek, umí
pracovat s dynamickými štětci libovolných tvarů, a tak písma, která je nutné jinde popisovat jako obrysová,
lze v METAFONTu popsat jako vykreslená. Též možnosti zeštíhlení jsou lepší (popis písmena je svázán
s jeho grafickým záměrem). Zatímco písma Multiple Master mají zřídkakdy více než dva stupně volnosti,
rodina písem Computer Modern vytvořená v METAFONTu jich má 57! Za tyto možnosti ovšem platí
výpočetně náročným rastrováním písmen a obtížným převodem do běžných vektorových formátů. Většina
aplikací je dodnes převádí na bitové mapy pro příslušné koncové zařízení.
Většina písem ve formátu METAFONT je volně dostupná na Internetu (písma snad pro všechny jazyky i původní písmová tvorba, jakou je například Computer Modern, Concrete Roman, Pandora či Euler
od Hermanna Zapfa). Komerčně jsou pak za rozumné ceny dostupná i písma pro tak speciální znakové
sady, jakými jsou např. klasická arabština či starořečtina.
V našem seriálu se k METAFONTu ještě vrátíme. V roce 1978 byl zřejmě prvním digitálním písmovým
formátem a dodnes je tím nejsilnějším nástrojem.
Kromě těchto formátů ještě existují některé speciální formáty (např. pro 3D písma), ty však v běžné
typografii nevyužijeme.
9.5
Krátké příklady
Ti, kteří si zkusili zobrazit příklad telefonu z minulé kapitoly, zjistili, že některé postscriptové prohlížeče
obrázek neukáží, zatímco samotný Ghostscript ano. Bylo to právě proto, že se jednalo o nestrukturovaný
PostScript.
S tímto obrázkem telefonu jsem dnes připravil několik příkladů, které ilustrují, jak se kód mírně mění,
aby vyhověl definici různých formátů. Zároveň ukazují, že manipulace s jednoduchým PostScriptovým
kódem není žádná složitá magie.
Nestrukturovaný (ale komentovaný) PostScript[144] jste viděli v minulé kapitole.
Strukturovaný PostScript[143] (obsahuje navíc strukturované komentáře, mezi nimi i informaci o ohraničujícím rámu, určenou pro prohlížeče):
%!PS-Adobe-3.0
%%Creator: hand made
%%Title: Telefon
%%Pages: 1
%%PageOrder: Ascend
%%BoundingBox: 0 0 40 40
%%HiResBoundingBox: 0 0 39.5444 39.355
%%EndComments
/c { curveto } def
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize 40x40
1 dict dup /PageSize [40 40] put setpagedevice
%%EndFeature
%%EndSetup
%%Page: 1 1
-15.7606 -35 translate
newpath
46.3294 35 moveto
9.5. KRÁTKÉ PŘÍKLADY
57
29.2607 39.8018 16.8406 59.5148 15.7606 65.2856 c
17.6206 70.885 22.9607 73.9362 25.5407 74.355 c
27.5207 73.0986 31.7207 67.0067 32.5607 64.2173 c
31.3007 62.3182 29.0207 61.0105 27.4007 60.3524 c
27.8207 58.6772 35.5594 48.1696 41.1854 46.6044 c
41.7839 48.2297 43.1597 50.5775 45.0735 51.8417 c
47.8843 51.0591 53.9883 46.8451 55.305 44.9188 c
54.9459 42.3302 51.8936 36.9724 46.3294 35 c
closepath
fill
showpage
%%Trailer
%%EOF
Zapouzdřený PostScript (EPS)[141] bez náhledu (jiná hlavička, neobsahuje showpage – ačkoliv podle
nové definice formátu EPS by mohl, mezi strukturovanými komentáři je volitelná definice přesné hodnoty
ohraničujícího rámu, chybí příkaz pro nastavení stránky):
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: hand made
%%Title: Telefon
%%Pages: 1
%%PageOrder: Ascend
%%BoundingBox: 0 0 40 40
%%HiResBoundingBox: 0 0 39.5444 39.355
%%EndComments
/c { curveto } def
%%EndProlog
%%Page: 1 1
-15.7606 -35 translate
newpath
46.3294 35 moveto
29.2607 39.8018 16.8406 59.5148 15.7606 65.2856 c
17.6206 70.885 22.9607 73.9362 25.5407 74.355 c
27.5207 73.0986 31.7207 67.0067 32.5607 64.2173 c
31.3007 62.3182 29.0207 61.0105 27.4007 60.3524 c
27.8207 58.6772 35.5594 48.1696 41.1854 46.6044 c
41.7839 48.2297 43.1597 50.5775 45.0735 51.8417 c
47.8843 51.0591 53.9883 46.8451 55.305 44.9188 c
54.9459 42.3302 51.8936 36.9724 46.3294 35 c
closepath
fill
%%Trailer
%%EOF
Z tohoto souboru vytořené písmo ve formátu Adobe Type 3[142], které obsahuje jediný znak (komentováno, celý kód je vložen do definice písma):
%!
% slovník písma bude mít deset položek
10 dict dup begin
% Type 3
/FontType 3 def
% základní velikost písma
/FontMatrix [0.02 0 0 0.02 0 0 ] def
58
KAPITOLA 9. POSTSCRIPTOVÉ FORMÁTY A PÍSMA
% ohraničující rám písma
/FontBBox [0 0 39.5444 39.355] def
% kódování písma - pole 256 položek
/Encoding 256 array def
% vyplníme jej hodnotou .notdef
0 1 255 {Encoding exch /.notdef put} for
% dáme kódovací tabulku na zásobník
Encoding
% pod písmenem "a" bude symbol telefon
dup (a) 0 get /telefon put
% zrušíme ze zásobníku
% (pro jediný znak to lze napsat jednodušeji)
pop
% slovník metriky bude obsahovat dva znaky
/Metrics 2 dict def
Metrics begin
/.notdef 0 def
/telefon 39.5444 def
end
% ohraničující rámy jednotlivých znaků
/BBox 5 dict def
BBox begin
/.notdef [0 0 0 0] def
/telefon [0 0 39.5444 39.355] def
end
% slovník vlastních definic znaků
/CharacterDefs 2 dict def
CharacterDefs begin
/.notdef { } def
% vlastní definice znaku telefon
/telefon
{
-15.7606 -35 translate
newpath
46.3294 35 moveto
29.2607 39.8018 16.8406 59.5148 15.7606 65.2856 curveto
17.6206 70.885 22.9607 73.9362 25.5407 74.355 curveto
27.5207 73.0986 31.7207 67.0067 32.5607 64.2173 curveto
31.3007 62.3182 29.0207 61.0105 27.4007 60.3524 curveto
27.8207 58.6772 35.5594 48.1696 41.1854 46.6044 curveto
41.7839 48.2297 43.1597 50.5775 45.0735 51.8417 curveto
47.8843 51.0591 53.9883 46.8451 55.305 44.9188 curveto
54.9459 42.3302 51.8936 36.9724 46.3294 35 curveto
closepath
fill
} bind def
end
% funkce BuildChar je vlastní výkonná funkce, vyhledává a kreslí znak
/BuildChar
{ 0 begin
/char exch def
/fontdict exch def
/charname fontdict /Encoding get char get def
9.5. KRÁTKÉ PŘÍKLADY
59
fontdict begin
Metrics charname get 0
BBox charname get aload pop
setcachedevice
CharacterDefs charname get exec
end
end
} def
/BuildChar load 0 3 dict put
% číselná identifikace v~uživatelském rozsahu
/UniqueID 4000001 def
end
% vlastní definice písma
/Telefon exch definefont pop
% a zde je zakomentovaný kód, který ověří, že písmo funguje
%/Telefon findfont 200 scalefont setfont 20 20 moveto (a) show showpage
Soubor AFM[140] popisující toto písmo:
StartFontMetrics 3.0
FontName Telefon
FontBBox 0 0 790.888 787.1
EncodingScheme FontSpecific
StartCharMetrics 1
C 97 ; WX 790.888 ; N telefon ; B 0 0 790.888 787.1 ;
EndCharMetrics
EndFontMetrics
Poznámka k uvedenému písmu a jeho metrice: Standardní hodnota FontMatrix je [0.001 0 0 0.001 0
0]. Za takových podmínek by hodnoty v AFM souboru numericky odpovídaly hodnotám v definici písma,
v našem případě jsou však 20 vyšší. Vzniklo to z praktických důvodů – velikost již hotového obrázku
telefonu bychom jinak museli upravovat, aby odpovídala velikosti písma.
Na vývojářských stránkách[33] firmy Adobe jsou všechny formáty popsány dostatečně na to, abychom
si mohli takové soubory sami vytvářet.
60
KAPITOLA 9. POSTSCRIPTOVÉ FORMÁTY A PÍSMA
Kapitola 10
Řešení problémů s PostScriptem
Z minulých kapitol bychom mohli mít pocit, že vše kolem PostScriptu a PDF dokonale funguje. To je
však velký omyl. Hledání chyb a neslučitelností nám často zabere spoustu drahocenného času. Uživatelé
proprietárního softwaru otvírají různé tajemné tabulky a náhodně mění zajímavě vypadající položky. Ti
ostatní zasednou nad otevřeným zdrojovým kódem a budou bádat, proč to nefunguje. Anebo si přečtou
tento článek . . .
Přestože by všechny postscriptové interprety měly být shodné, až nepříjemně často se stane, že něco
selže. Předkládám vám zde neúplný seznam problémů, se kterými jsem se během několika let setkal. Zmíním
se o spolupráci s komerčními programy (neznám osvitovou jednotku, která by byla zcela otevřeně kódová,
i když v některých možná najdeme Artifex Ghostscript). Některé postscriptové interprety neumějí věci,
které jsou v PostScript Language Reference Manual zmíněny, jiné dělají cosi navíc, co pro změnu není
popsáno.
Při důsledném používání otevřeně kódových programů jsme však vůči těmto problémům méně bezmocní
než uživatelé proprietárních systémů. Pokud najdu chybu v otevřeném programu, mohu přičítat jen sobě,
že si ji neumím opravit nebo alespoň obejít.
Kdysi jsem pracoval ve studiu s několika proprietárními programy. Nezřídka se musela několikrát náhodně převrstvovat sazba, aby program vygeneroval korektní PostScript pro všechny pláty (na třetí pokus
se to opravdu povedlo). To ovšem nebylo nic proti postscriptovému výstupu z MS-Wordu, který byl vskutku
sázkou do loterie (Proč to místo strany 9 vytisklo na tu drahou fólii chybové hlášení? Proč to tady není
tučné? Proč jde tenhle nápis do kopce? Proč se tady přelomila sazba? Kde je ten zubatý rámeček?). Asi se
nebudete divit, že některá studia si platí písařku, která přepisuje texty od solventních zákazníků z proprietárních programů pro Windows do proprietárních programů pod MacOS (text si ale nechávají vytisknout,
neopisují ho z monitoru . . . ).
10.1
Není vidět náhled
Nejedná se o chybu. Běžné otevřeně kódové aplikace EPS náhled negenerují, komerční jej však většinou
používají.
Řešení: Vložit náhled do souboru pomocí programu epstool[65]:
epstool -tg -ztiff24nc soubor_bez_náhledu.eps >soubor_s_náhledem.eps
10.2
EPS nelze vložit do TEXu
Opět většinou nejde o chybu. Může to mít dvě příčiny:
TEX sám o sobě neumí vkládat soubory s náhledem.
61
62
KAPITOLA 10. ŘEŠENÍ PROBLÉMŮ S POSTSCRIPTEM
Řešení: Odstranit náhled ze souboru pomocí programu epstool:
epstool -p soubor_s_náhledem.eps >soubor_bez_náhledu.eps
TEX neumí vkládat EPS soubory s jiným zakončením řádků, než má daná platforma.
Řešení: Pokud se nejedná o EPS s binárními daty, převedeme jej pomocí tr. Například pro převod Mac
→ Unix to bude tr ’\r’ ’\n’ <mac.eps >unix.eps. Totéž umí např. i Emacs (verze 20 a novější).
Pokud soubor obsahuje binární data, můžeme provést převod pouze na hlavičku souboru (dál TEX
nejde).
10.3
Aplikace při vkládání EPS hlásí, že nemá písmo, přestože
v EPS souboru písmo je
Opět se může jednat o dva různé problémy:
Některé programy nerozumějí starému stylu DSC komentářů ve verzi 2.0, a pak se tváří, že EPS soubor
neobsahuje správné písmo. Naneštěstí populární TEXový program dvips generuje DSC-2.0 doposud.
Řešení: Prohnat EPS soubor přes následující sed skript:
1,30s/DocumentFonts/DocumentSuppliedFonts/
Jiné programy pak vyžadují, aby písmo použité v EPS bylo nainstalováno i v systému.
Řešení: Pokud nemůžeme písmo nainstalovat, můžeme informaci o písmu z DSC zcela smazat. Aplikace
se nedozví, že EPS soubor takové písmo používá, a soubor vloží bez reptání. Jedná se o řádky poblíž
začátku souboru začínající řetězci %%DocumentFonts nebo %%DocumentSuppliedFonts (s případnými
následujícími řádky začínajícími %%+). Pokud se vyskytne řádka začínající %%DocumentNeededFonts,
zřejmě písma opravdu v souboru nejsou.
10.4
Obrázky TIFF s kompresí CCITT G3/G4 nefungují
Opět jsou dvě možné příčiny:
V implementacích firmy Adobe se z neznámého důvodu chovají CCITT filtry jinak než ostatní filtry –
uzavřou se po každém datovém bloku a je nutné je opět otevřít.
Řešení: Aktualizovat balík libtiff[105], jehož program tiff2ps měl tuto chybu, nebo generovat EPS soubor
jinak (např. pomocí convert). Upozorňuji však, že i poslední verze tiff2ps stále ještě občas generuje
špatný PostScript.
Doposud žádná běžná komerční aplikace nevyužívá možnosti generovat PostScript z bitmapy čárové
grafiky s velmi silnou kompresí CCITT (G3 a G4) a v některých interpretech při jejím použití můžeme
narazit na neodhalené chyby.
Řešení: Rozloučit se s úsporným formátem a použít soubor bez komprese, případně s kompresí lzw.
10.5. PŘEVOD RGB–CMYK JE NEPŘESNÝ
10.5
63
Převod RGB–CMYK je nepřesný
Pro obrazovkový PostScript se používá grafický prostor RGB, pro tisk CMYK. Jejich převod byl ve staré
verzi PostScriptu definován zcela nevyhovujícím způsobem. Výsledek převodu se na různých zařízeních
navíc výrazně liší podle toho, zda CMYK zařízení používá RGB prostor bez gama korekce, s gama korekcí
nebo je nastaveno na sRGB. Teprve při správném použití LL3 funkce UseCIEColor lze dosáhnout lepších
výsledků.
Řešení: Použít správný barevný prostor nebo správně inicializovaný nezávislý barevný systém.
10.6
Nesprávná délka hlavičky filtru s obrazovými daty
Toto není chyba PostScriptu. Podle definice jazyka je zcela v pořádku, uzavře-li se čtený řetězec v okamžiku,
kdy má dostatek dat pro nakreslení obrázku. Jinak tomu může být při převodu do jiných vysokoúrovňových jazyků, kde takové triky nejsou povoleny (PDF, PXL). Tam je možné spatřit pruh pod obrázkem či
vykousnutý pravý dolní roh.
Řešení: Nepoužívat tiff2ps s volbou pro PostScript Level 2.
Problémy v Ghostscriptu s tímto spojené budou zřejmě vyřešeny v Ghostscriptu 7.03.
10.7
Příkaz nastavení stránky
Starší zařízení používala k nastavení velikosti stránky příkaz setpage, který se však nestal oficiální součástí
PostScriptu. Nová používají setpagedevice. Většina zařízení rozumí oběma definicím, ovšem ne všechna.
Řešení: Podívat se do PPD souboru a opravit hlavičku.
10.8
Progresivní jpeg dct
Přesto, že to nikde v referenční příručce není uvedeno, většina postscriptových interpretů nezpracuje progresivní JPEG DCT kompresi. Ghostscript má tuto funkci zablokovanou (hledejte v souboru gsjmorec.h).
Řešení: Nepoužívat tiff2ps s volbou pro PostScript Level 2 na progresivně JPEG DCT komprimované
obrázky. Před použitím jpeg2ps progresivní JPEG „odprogresivnitÿ příkazem jpegtran.
10.9
Postscriptové soubory mají po spojení špatná písma
Máte-li vytvořené dva soubory (např. z dvips), pak ze stejných písem jsou v každém z nich použité jiné
znaky. Ze strukturovaných komentářů některých programů (dvips) však není patrné, že se jedná jen o podmnožinu písma, a ani v kódu nemají různá jména. Spojovací program si s takovýmí soubory neporadí.
Řešení: V případě dvips použít spojení ještě na úrovni dvi (dvidvi, dvitodvi). Opravit zdrojový kód
a ke jménu podmnožiny písma přidat náhodný řetězec.
64
10.10
KAPITOLA 10. ŘEŠENÍ PROBLÉMŮ S POSTSCRIPTEM
Špatná informace v DSC
Pokud vytváříme soubor v programu, který nepodporuje zamýšlený výstupní formát zcela (např. v TEXu
připravujeme separovaný PostScript), může některá aplikace získat z DSC nesprávné informace. Na jejich
základě pak může zrušit naše nastavení z hlavičkové části souboru (úhly, rastry).
Řešení: Opravit aplikaci. Vyhnout se meziaplikaci. Nelze-li, vložit nastavovací informace do PostScriptu
na začátek každé stránky a nespoléhat se na to, že informace z hlavičky budou použity.
10.11
Falešný strukturovaný PostScript
Některé soubory mají vytvořenou DSC strukturu, ale postscriptový kód není strukturovaný (např. výstup
z MS-Wordu). Po některých operacích pak vznikne chybný kód.
Řešení: Nepoužívat DSC analyzátory nebo tyto aplikace. Nelze-li a je-li nutné přestránkovat, provést to
až po interpretaci souboru v Ghostscriptu (soubor ovšem velmi naroste).
Pozor: Při použití některých hackerských konstrukcí v TEXu můžeme takový PostScript nechtěně vyrobit
sami! Pokud to o souboru víte, odstraňte z něj strukturované komentáře (volby dvips -K1 -N1).
10.12
Interpolace nefunguje
V popisu jazyka PostScript je možné u obrázků zapnout funkci Interpolate, která by měla obrázek
s nízkým rozlišením vykreslit lépe. Některé postscriptové interprety toto nastavení zcela ignorují, jiné
interpolují obrázky jen v některých polohách.
Řešení: Nespoléhat na správnou funkci Interpolate a obrázek si zvětšit předem v běžném bitmapovém
editoru.
10.13
PDF nejde vytisknout
Z důvodu neznámé chyby nejde výstup ghostscriptového převodníku ps2pdf vytisknout nebo nasvítit z některých verzí Adobe Acrobat Readeru. Zobrazuje se bez problémů. Příčina mi zatím není známá.
Řešení: Aktualizovat Adobe Acrobat Reader. Stejný soubor lze bez problémů zanalyzovat a vytisknout
některými komerčními vektorovými editory (je zde ovšem riziko v nepřesnosti těchto programů).
10.14
Obrázek i písmo jsou kvalitní na obrazovce, ale ne při tisku
Jak již bylo dříve řečeno, pro tisk rozměrnější jemné grafiky vyžaduje Ghostscript větší množství paměti
osazené v tiskárně (za minimum lze považovat 4 MB pro A4/600 DPI a 16 MB pro A4/1200 DPI). Pokud
tiskárně dojde paměť, přistoupí k podvzorkování a výsledky bývají žalostné.
Řešení: Dokoupit paměť do tiskárny nebo tisknout pouze menší obrázky. Může též pomoci použití PXL
místo PCL.
10.15. PORUŠENÍ PODMÍNEK OPERÁTORU SEAC
10.15
65
Porušení podmínek operátoru seac
Tento problém je v podstatě chybou referenčních příruček. Nebudu-li zacházet do detailů – referenční ukázka
pro změnu kódování písma má jednu chybu – pokud písmo obsahuje operátor seac (pro práci s akcenty),
generuje ukázka PostScript, který je v rozporu s referenční příručkou Type 1. Navíc referenční příručka
Type 1 neumožňuje s použitím seac vytvořit korektní postscriptové písmo v kódování např. Latin-2.
Doposud mi není znám žádný PostScriptový interpret, kterému by tento rozpor vadil. Jinak je tomu
u převodníků. Problém měly některé verze ps2pdf z Ghostscriptu (podařilo se mi vývojářům vysvětlit,
že takové „vadnéÿ soubory v Čechách potřebujeme) a dvips z balíku Web2C (zde pomáhala volba -j0).
Řešení: Ověřit si tisk všech akcentovaných znaků nanečisto. Firma Adobe si je tohoto problému vědoma
a operátor seac nedoporučuje tvůrcům písem používat.
10.16
Písmo spadlo, v Ghostscriptu přitom funguje
V některých písmech se občas vyskytnou podivné operátory. Není mi známo, zda se jedná o „tajnéÿ operátory, či spíše o chybu editoru písem. Ghostscript je vůči těmto podivným operátorům v písmech poměrně
imunní, ale některé jiné interprety nikoliv.
Řešení: Není-li možné soubor zpracovat jinde, můžeme sáhnout po t1utils[99], písmo dekryptovat, nalézt
operátory error nebo UNKNOWN číslo , z písma je odstranit, a vše opět zakryptovat.
10.17
Poděkování
Mé poděkování za přímou či nepřímou pomoc při řešení popsaných probémů patří těmto lidem: L. Peter
Deutsch, Petr Macháček, Bruce A. Mallett, Tom Lane.
66
KAPITOLA 10. ŘEŠENÍ PROBLÉMŮ S POSTSCRIPTEM
Kapitola 11
Postscriptové omyly a problémy
s písmy
Tato kapitola se zabývá hned dvěma tématy: začneme malým opravníkem obecně rozšířených omylů o PostScriptu a PDF, zbytek článku pak budeme věnovat problémům s postscriptovými písmy a jejich počešťováním.
11.1
Časté omyly o PostScriptu
11.1.1
PDF dává méně kvalitní výstup
Je a není to pravda. Pro většinu grafiky to pravda není a PDF dává stejně kvalitní výstup. Výjimkou je
několik konstrukcí, které jsou možné v PostScriptu, ale nikoliv v PDF. Jsou to např.: jakékoliv postscriptové
větvení v závislosti na vlastnostech zařízení (např. bitmapové písmo vložené ve více velikostech nebo obrázek
vložený zároveň barevně i černobíle – PDF nemá programátorské konstrukce), speciální písma, konstrukce
nad nimi a nad cestami (cesta kolem písma je v PostScriptu poměrně jednoduchá programátorská operace,
ale v PDF dostaneme obrovský soubor).
Dalším problémem je ztrátová komprese u některých převodníků z PostScriptu do PDF. Při dekompresi
a opětné kompresi může dojít ke ztrátě kvality. Kvalita JPEG komprese je ovšem ve většině převodníků
nastavitelná.
Poznámka: Na podobné problémy narazíte i při převodu mezi SVG a PostScriptem. Některé konstrukce
nejsou snadno převoditelné – například průhlednost v SVG, ale většina ano.
11.1.2
Znalost PostScriptu mi v dnešní době k ničemu nebude
Asi málokoho napadne připravovat knihu přímo v PostScriptu (i když i na to existují nástroje, jako např.
Quikscript[62]).
Ale pochopení PostScriptu nám umožní provádět triky, kdy „neřešitelnýÿ problém vyřeší jednořádkový
postscriptový program. Několik takových triků si ukážeme v příští kapitole.
11.1.3
PostScript je „ukecanýÿ jazyk
Tuto pověst získal zčásti právem v době Level 1, kdy bitové mapy převedené do PostScriptu nabývaly
obludných rozměrů. V Level 2 se však objevily filtry, které umožňují posílat data dokonce binárně, takže
soubory pak narostou pouze o několik set bytů hlavičky. Přesto tato pověst o PostScriptu zůstala. Mohou
67
68
KAPITOLA 11. POSTSCRIPTOVÉ OMYLY A PROBLÉMY S PÍSMY
za to komerční aplikace a jejich hlavičkové soubory. Kód pro nakreslení obrázku telefonního sluchátka
z minulé kapitoly je dlouhý 475 bytů, nutné strukturované komentáře mají 190 bytů. Soubor byl ručně
„vytaženÿ ze 132 kB dlouhého EPS souboru, který výtvarník připravil v komerčním vektorovém editoru.
99,5 informací tedy tvořil zbytečný balast.
11.1.4
Ghostscript a Stuffit jsou od stejné firmy
Tento omyl je široce rozšířený, nicméně na Ghostscriptu pracuje malá kalifornská firma Aladdin Enterprises
[48], která nemá nic společného s firmou Aladdin Systems[49], tvořící software pro Macintosh (a dnes
i Linux).
11.2
Závady písem a znakových sad
Protože starší verze PostScriptu byla vytvářena ještě v dobách „železné oponyÿ, nebyla do ní zahrnuta podpora východní Evropy. Když se po jejím pádu firmy vrhly na lokalizaci západních písem, panoval v názvech
chaos. Zatímco některé firmy se alespoň snažily znaky správně pojmenovat (což ovšem mělo tenkrát neblahé
důsledky, neboť ve spoustě programů písma fungovala jen tehdy, tvářila-li se jako západoevropská), jiné se
spokojily s tím, že na dané platformě bude mít znaková sada „správnéÿ kódování, a pranic je nezajímalo,
že např. písmenu ř tak připadne „příhodnýÿ název oslash. Tato písma lze dnes, bez ohledu na jejich cenu
a typografickou kvalitu, považovat za zmetky! Jsou v některých dobře lokalizovaných aplikacích nepoužitelná, v jiných pak jen po vynaložení značného úsilí.
Podrobíme-li písma na našem trhu ostré kontrole typografické i technické kvality, bohužel je nutné
konstatovat, že zatím převládají zmetky!
11.2.1
Závadná diakritika
I „pouhéÿ počeštění písma vyžaduje jistý grafický talent. Doplní-li výrobce malebné (nebo i ošklivé) písmo
háčkem z písma Times, získal za málo práce nepoužitelný zmetek! Ještě častěji je postižen kroužek nad ů
a měkčení u ^ť (zřejmě je pohodlné nahradit je znakem stupně a uvozovkou). Za otřesné pak lze považovat
použití háčku nad ď a ť !
Obrázek 11.1: Zmetkovník 1
Několik zmetků v diakritice: Zcela nevhodná diakritika, znak stupně místo kroužku, uvozovka místo
měkčení, háček nad „dÿ.
11.2.2
Špatné podřezávání (kerning)
Špatné podřezávání je slabým místem mnoha původních znakových sad. Je ovšem třeba dodat – pokud
nějaké vůbec mají. Co teprve po lokalizaci! Někteří výrobci při tvorbě podřezávacích párů zcela vynechali
akcentovaná písmena, jiní jen mechanicky zkopírovali páry z neakcentovaných. Typicky jsou problémy dvojic
viditelné u VÁ, Tě, ale i u mnoha dalších.
11.2. ZÁVADY PÍSEM A ZNAKOVÝCH SAD
69
Obrázek 11.2: Zmetkovník 2
Několik zmetků v podřezávání: Chybějící pár pro „VÁÿ je zcela nepřijatelný, mechanicky zkopírované
(navíc ještě příliš těsné) podříznutí dvojice „Těÿ je též nevhodné. Také dvojice „ďaÿ by měla být
podříznutá. Detailisté budou navíc chtít, aby hodnota podříznutí pro dvojici „ďáÿ byla mírně vyšší než
pro „ďaÿ.
11.2.3
Chybějící znaky
Budeme postupovat podle chybějící množiny znaků. Obecně platí – nejpohodlnější metodou je změna názvů
v kódovém vektoru, jedinou čistou verzí je pak přejmenování písmen v dekryptovaném písmu, ještě než si
písmo nainstalujeme.
11.2.4
Chybí svaznice fi, fl, ffi, ffl
Při lokalizaci písem tyto znaky některým tvůrcům zřejmě překážely. Jak jinak lze vysvětlit, že v západní
verzi písma tyto svaznice jsou, ale ve východní chybí. Zřejmě tvůrci nic nevědí o tom, že písmo může
obsahovat i více než 256 znaků.
Řešení: Máme-li k dispozici původní písmo, můžeme vytvořit vitruální písmo (pokud to program dovoluje – např. moderní TEXové distribuce). Jinak nám nezbyde, než v dekryptované verzi písma tato písmena nakopírovat (to nemusí být tak triviální operace, vzhledem k možné kolizi podprogramů u operátoru
callsubr).
11.2.5
Chybí ^ť
V době tvorby starších písem nebylo jasné, jak budou tato písmena pojmenována. Někteří zvolili pojmenování x quoteright, neboť znak měkčení se nejvíce podobá pravé jednoduché anglické uvozovce, jiní x caron,
neboť měkčení má význam háčku. Adobe v roce 1997 ve verzi LL3 určila za správný název x caron. Nové
aplikace tedy tyto znaky nezobrazí.
Řešení: Je možné upravit jména v definici kódování a kódovém vektoru pro taková písma. Mnohé
programy to však neumožňují.
V tomto případě je program pro čisté řešení – dekryptování, opravu a opětovné zakryptování natolik
jednoduchý, že jej zde vypíšu na ukázku celý.
Upozorňuji, že dekryptováním a opravováním znakových sad, byť legálně koupených, se můžete dostat do rozporu s jejich
licenčními ujednáními! Chystáte-li se navštívit USA, doporučuji projednat s právníkem[70], zda vám nehrozí 25 let vězení[111].
#! /bin/sh
# opravíme písma
for i~in *.pfb ; do
t1disasm $i | \
sed ’s/\([dtlL]\)quoteright/\1caron/g’ | \
t1asm >$i~
mv $i~ $i
done
# opravíme metriky
for i~in *.afm ; do
sed <$i ’s/\([dtlL]\)quoteright/\1caron/g’ >$i~
mv $i~ $i
done
70
KAPITOLA 11. POSTSCRIPTOVÉ OMYLY A PROBLÉMY S PÍSMY
11.2.6
Chybí ŽŠŤžšť
Klasika. Písmo je v kódování CP1250, počítač v ISO-8859-2 a písmo nikdo nepřekódoval.
Řešení: Písmo lze celkem jednoduše překódovat.
Např. v TEXu (ve formátu cstex) stačí do souboru psfonts.map napsat: název pro TeX jméno písma
"XL2encoding ReEncodeFont" <xl2.enc <písmo.pfb. V jiných programech lze překódovat pomocí vložené hlavičky (inspirovat se lze v hlavičkách TEXu).
Pracujeme-li v TEXu, nesmíme zapomenout na překódování metriky příkazem afm2tfm nebo LATEXovou
cestou přes fontinst.
11.2.7
Chybí Ůů a všechna písmena s háčky, příp. jsou znaky náhodně umístěné
Pokud se jedná o písmo pro východní Evropu, znaky možná obsahuje, ale pod úplně jinými jmény. O tomto
případu jsme se již zmínili výše.
Řešení: Je nutné dát písmu správné kódování. Buď v externím kódovém vektoru, nebo v dekryptovaném
písmu. V prvním případě vytvoříme kódový vektor, který bude obsahovat názvy „zprzněnéÿ stejně jako naše
písmo, v druhém případě naopak „zprzněnéÿ názvy opravíme. Před několika lety jsem napsal jednoduchý
skript[139] (používající kódové vektory z cstocs[73]), který tuto nepříjemnou práci poněkud usnadní, známeli kódování, v jakém písmo je, i kódování, za něž se vydává.
11.2.8
Chybí Ůů a všechna písmena s háčky kromě ŽŠžš
PostScript Level 1 a Level 2 tato písma nedefinoval. Je tedy pravděpodobné, že písmo východní znaky
neobsahuje.
Řešení: Zapracovat na písmu a diakritiku doplnit. Ve většině písem bývají háček, čárka i kroužek
k dispozici, měkčení se vyrobí nejsnadněji zmenšením či úpravou znaku quoteright, maďarská dvojčárka
zdvojením čárky, polský ogonek se dokreslí . . .
Vše je možné provést na úrovni postscriptového písma (např. programem t1accent[8] od Petra Olšáka), v popisu složených znaků v souboru AFM (např. programem t1csfonts[7] též od Petra Olšáka) nebo
na úrovni virtuálního písma (např. v TEXu). Existuje ještě pro typografii nevhodná možnost počeštění až
na úrovni postscriptového souboru, o které jsme se zmínili v kapitole 1, nebo naopak na úrovni programu
(například v TEXu použití primitivu \accent). Zajímavý článek na toto téma od Petra Macháčka vyšel
v čísle 3–4/98[17] zpravodaje sdružení CSTUG[63].
I když mechanickou práci za nás mohou odvést programy, k dokončení úprav je třeba estetické cítění.
Kapitola 12
Vektorová grafika
Alternativou bitových map je vektorová grafika. Abychom mohli využít jejích výhod, musíme k tomu mít
dobrý editor. V kapitole 1 jsem se lehce dotkl vektorových editorů. Protože toto téma vyvolalo bohatou
diskusi, rozhodl jsem se k němu vrátit.
Vektorová grafika nám nabízí možnost obrázek libovolně zvětšovat, aniž by se objevily „zubyÿ. Při práci
můžeme upravovat již nakreslené křivky. Obrázky lze bez ztráty kvality libovolně deformovat a tvarovat.
Cenou za to je nutnost používat zcela jiné nástroje. Obecně lze říci, že vektorová grafika je vhodná pro
tvorbu log, diagramů, sazbu apod. Pro zpracování obrázků však hraje prim grafika bitmapová. A vektorový
editor by nám měl umožnit bitovou mapu vložit.
Donedávna byl jediným přenositelným systémem vektorové grafiky PostScript, jehož původním zaměřením byl tisk ve vysokých rozlišeních. Novější formát, SVG[154] (Scalable Vector Graphics), byl naproti
tomu již koncipován jako formát přenositelné vektorové grafiky. Z toho vyplývají drobné odlišnosti v jejich
schopnostech.
12.1
Převodníky
Obecným převodníkem z PostScriptu do jiných formátů je pstoedit[121]. Jedná se o program, který spustí
speciálně inicializovaný Ghostscript, a ten pak místo rastrování zapisuje průběh kreslení. Umí převádět
do mnoha formátů (gif, xfig, pdf, gnuplot, zploštělý PostScript s Bézierovými křivkami nebo bez nich,
výměnný CAD formát DXF, LightWave 3D, RenderMan, Real3D, applet Java 1 nebo Java 2, formát Idraw,
Tcl/Tk, HPGL, AI, Windows Meta File – WMF pro Windows 9x/NT, Enhanced Windows Meta File – EMF
pro Windows 9x/NT, OS/2 meta file pro OS/2, PIC formát pro troff/groff, formát METAPOST, formát pro
obrázek v programech TEX/LATEX a LATEX 2ε , obrázek pro Kontour, GNU Metafile pro plotutils/libplot,
Sketch), další jsou dostupné jako externí moduly (např. FrameMaker MIF, CGM Format binární i textový,
SVG, RTF). Některé z těchto modulů jsou ovšem komerční.
Do PostScriptu se většinou dá převádět velmi jednoduše – zachycením příkazů pro tisk.
Typickou úlohou bývá též převod čárové grafiky do grafiky vektorové, často nazývaný trasování. Tento
převod je poměrně komplikovaným problémem a jeho vykonání závisí na množství parametrů, jakými
jsou přesnost sledování křivky, rozpoznávání hran, hustota řídících bodů apod. Tento náročný úkol zvládá
AutoTrace[16]. Obsahuje trasovací knihovnu, kterou lze vestavět do aplikací, a jednoduchou aplikaci z příkazového řádku. Průběh trasování lze řídit nastavením třinácti parametrů. Umí převádět do formátů eps,
ai, Sketch, SVG, xfig, emf, Elastic Reality Shape, Shockwave Flash a zvládá přímý výstup přes pstoedit do
jeho formátů.
12.2
Vektorové editory
Za základní vlastnosti editoru lze považovat následující:
71
72
KAPITOLA 12. VEKTOROVÁ GRAFIKA
Bézierovy křivky: Jaký typ Bézierových křivek program kreslí? Interpolované, aproximované či obecné?
(První dvě jmenované se někdy nepřesně označují jako „spline křivkyÿ.) U obecných Bézierových
křivek by mělo být možné změnit režim směrových vektorů na normální, symetrický a úhlový.
Vzorky: Umí program vzorky a vzorované čáry?
Import a export: Umí program pracovat s eps a s bitmapami? Umí program jednoduše exportovat? Lze
z něj dostat např. EPS obrázek?
Za standardní vlastnosti, které již dále nerozepisuji, považuji podporu seskupování objektů a běžný
editor křivek.
Pokročilé vlastnosti, které by podle mého názoru neměly v opravdu kvalitním editoru chybět, jsem
seřadil podle užitečnosti:
Podpora češtiny: Vím, že podpora češtiny, alespoň pro kreslení a výstup pro PostScript LL3, znamená
v mnohém z programů jen několik řádek kódu. Dokud je tam ale nikdo nedopíše, program neuspěje.
Rotace a zkosení: Program by měl umět rotovat a zkosovat objekty, případně i nelineárně deformovat.
Komplexní tvary: Vypořádá se program s objekty s dírou? Například PostScript má pro vyhodnocování
děr hned dvě metody – sudá/lichá, kdy je bod součástí díry, je-li součástí sudého počtu objektů,
a metoda podle směru kreslení – kdy se objekty kreslené po směru hodinových ručiček „odčítajíÿ
od objektů kreslených po směru hodinových ručiček. Je-li výsledek nula, jde o díru (nebo okolí objektu).
Ořezové cesty: Cestu v programu by mělo být možné využít nejen jako objekt pro vyplňování, ale též
jako ořezovou cestu – např. vložit bitmapový obrázek do útvaru omezeného Bézierovou křivkou.
Obarvení čárové grafiky: Pokud je obrázek zapsaný ve formátu čárové grafiky, měl by jej program umět
obarvit libovolnou barvou.
Přechody (gradienty): Jsou užitečnou pomůckou pro návrh graficky zajímavých tiskovin. Počínaje PostScriptem LL3 jsou podporovány přímo, starší verze PostScriptu je musí vykreslovat jako soustavu
barevných pruhů. Rozšířením přechodů je Gouraudovo stínování.
Operace nad písmy: V některých programech lze písmo jen obarvit. To je však poněkud málo. Písmo
by mělo být použitelné i jako cesta a ořezová cesta, třeba i pro obrázek. Mělo by být možné převést
písmo do křivek.
Volné kreslení: Tento nástroj mimořádně zvyšuje efektivitu práce – to, co nakreslíte myší nebo tabletem,
se okamžitě převede do křivek. Není přitom nutné se starat o polohu řídících bodů.
Podpora barevných prostorů: RGB podporují všechny editory, ale jiné systémy, např. CMYK, L*a*b
nebo přímé barvy, jsou též potřebné.
Hledej a zaměň barvu: Funkce záměny jedné barvy za jinou se občas hodí, stejně jako pojmenované
barvy.
Poloprůhlednost: Podpora poloprůhlednosti sice není do PostScriptu zahrnuta (narozdíl od SVG), ale
to neznamená, že by ji vektorový editor nemohl umět. Vektorový převod do PostScriptu by se pak
odehrával výpočtem v útrobách editoru.
Animace: Některé vektorové editory mohou umět vytvářet vektorové animace.
Volná deformace Bézierových křivek: Pro editaci Bézierových křivek je užitečný speciální editor, ve
kterém lze křivku editovat bez ohledu na polohu řídících bodů (ty se dopočítají automaticky).
12.3. NEINTERAKTIVNÍ VEKTOROVÉ EDITORY
12.3
73
Neinteraktivní vektorové editory
Tyto editory stojí v ústraní zájmu profesionálů. Přesto jejich schopnosti často vysoce převyšují možnosti
editorů interaktivních.
Díky kvalitním převodníkům se ani při jejich použití nemusíme vzdát možnosti provést část práce
v editoru interaktivním.
Pomineme-li přímou editaci PostScriptu v textovém editoru, vládnou poli neinteraktivních vektorových
editorů tři programy, které si příliš nekonkurují:
12.3.1
METAPOST
METAPOST vznikl na konci osmdesátých let minulého století jako modifikace o deset let staršího METAFONTu (o něm jsme se zmínili v kapitole 9). Jeho jazyk však byl poněkud upraven, aby výstupem nebyly
znaky písma, ale PostScriptové obrázky. Svou sílu si však jazyk zachoval. Pokud budete potřebovat kreslit
matematické ilustrace, vytvářet evolventní křivky (které jste si možná v dětství kreslili na papír pomocí
soupravy ozubených koleček) nebo třeba napsat program, který nakreslí lotos, složený z n lístků v daném
pořadí, rozevřených pod úhlem γ, je METAPOST tím nejlepším řešením.
Pomocné balíky maker zajistí spojení s TEXem, postscriptový výstup pak použitelnost výstupu v libovolné aplikaci.
METAPOST najdeme ve většině distribucí TEXu.
Následuje malá ukázka, jak lze pracovat s METAPOSTem:
beginfig(1);
path xlist;
xlist=(0,0)--(0,0)..(-.75pt,3.75pt)..(0,7.5pt)-(0,7.5pt)..(.75pt,3.75pt)..cycle;
pickup pencircle scaled .4pt;
def list expr x =
% cullit; % pouze pro METAFONT
unfill xlist rotated x shifted (7.5pt,0);
% cullit; % pouze pro METAFONT
draw xlist rotated x shifted (7.5pt,0);
enddef;
def listy expr x =
list x;
list -x;
enddef;
listy 15;
listy 30;
listy 45;
listy 60;
list 0;
endfig;
end
12.3.2
pstricks
Pstricks je balíkem maker pro TEX. Funguje ve většině TEXových formátů a najdeme ho ve většině jeho
distribucí. Na rozdíl od METAPOSTu však pstricks přináší možnosti PostScriptu do jazyka TEXu. Jde tedy
vlastně o klasický vektorový editor v neinteraktivní podobě. Pokud projdeme výše uvedené požadavky, které
74
KAPITOLA 12. VEKTOROVÁ GRAFIKA
Obrázek 12.1: Výstup ukázky METAPOSTu
se mohou vztahovat i na neinteraktivní editory, pak pstricks neumějí jen podporu nezávislých a přímých
barevných prostorů, poloprůhlednost a animace (obarvení čárové grafiky pak jen pomocným trikem). Jedná
se o zatím nejsilnější vektorový editor v oblasti otevřeného kódu.
Následující příklad demonstruje použití pstricks ve spojení s holým Plain TEXem (použitím vyšších
formátů se můžeme vyhnout těžkopádnosti holého TEXu):
\input pstricks
\input epsf
\font\smhelv phvro at 20pt
\font\medelv phvb at 25pt
\font\bighelv phvb at 100pt
\nopagenumbers
\smhelv
\vbox to\vsize{
\vskip\vsize
\hbox{\psclip{
\pscustom[linestyle=none,fillstyle=solid,fillcolor=yellow]{
\newpath
\moveto(0,0)
\lineto(\hsize,.5\vsize)
\lineto(0,\vsize)
}}
\vbox to0pt{\vss\baselineskip36pt
\leaders
\vbox{\prevdepth0pt\setbox4\hbox{{\lightgray http://www.root.cz}\enskip}
\hbox{\hskip-.5\wd4\cleaders\hbox{\copy4\enskip}\hskip\hsize}
\hbox{\cleaders\hbox{\copy4\enskip}\hskip\hsize}
\vskip-\prevdepth}
\vskip1.1\vsize
\nointerlineskip\vbox to 0pt{
\vskip-.48\vsize
\vss\rightline{\epsfxsize4cm\epsfbox{tuxsit.eps}\hskip1cm}\vss
\vskip.48\vsize}
}%
\endpsclip}
\vskip-\vsize
\advance\rightskip8mm
\vskip50mm
\baselineskip72pt
\leftskip0ptplus1fil
\rightskip0pt
\parfillskip0pt
12.3. NEINTERAKTIVNÍ VEKTOROVÉ EDITORY
75
\bighelv
ROOT
\vfil
\medelv
informace (nejenom) ze sv\v eta Linuxu
\vskip50mm
\hrule height0pt
}
\bye
Obrázek 12.2: Výstup ukázky pstricks
12.3.3
Gnuplot
Po programu Gnuplot[80] sáhnou všichni, kteří potřebují vytvářet grafy a diagramy. Protože na Rootu
vyšel nedávno o programu Gnuplot celý seriál[123], přenechám popis povolanějším.
76
KAPITOLA 12. VEKTOROVÁ GRAFIKA
Kapitola 13
Interaktivní vektorové editory
Pod názvem „vektorový editorÿ si většinou představíme interaktivní program. Z Internetu jsem stáhl zdrojové kódy několika takových editorů a vyzkoušel jsem jejich funkce. Dnes se s vámi podělím o své zkušenosti.
Přiznávám se, že s žádným z těchto editorů nemám předchozí zkušenosti, abych mohl hodnotit hlouběji.
Některé se navíc v současnosti tak rychle vyvíjejí, že od mého testu se opět leccos změnilo.
Mám-li hodnotit krátce, na vytváření smějících se oblud nejrůznějších tvarů, rozjásaných domečků
a dalších kýčů, které tvoří značnou část zakázek běžného studia (odrážejíce vkus průměrného konzumenta
reklamy), postačí v podstatě kterýkoliv ze zde uvedených vektorových editorů. A ty, které jsou na tuto
„tvorbuÿ nevhodné, dobře slouží k přípravě diagramů a schémat.
Při komplikovanějších testech (předchozí kapitola) již situace není tak jednoznačná a zjistíme, že mnohé
lze ještě vylepšit. Problémy nastávají s češtinou, s ořezovými cestami, barevnými prostory a separacemi
atd. Mnohé editory však již dnes nabízejí dobrý komfort pro běžnou práci.
13.1
Sketch[39]
Obrázek 13.1: Ukázka Sketch
Program je napsaný z velké části v Pythonu s použitím knihovny Imaging.
Češtinu ignoruje – písma Latin-2 nenabízí, v incializaci XKB je navíc chyba, která zabraňuje napsat
jakákoliv ne-Latin-1 písmena.
Rotace a zkosení se provádí triviálně dvojitým klepnutím.
Import eps lze provést pomocí pstoedit.
Bitové mapy lze vkládat, rotovat, zkosovat, ale nelze je uzavírat do ořezových cest ani používat jako
vzorek.
77
78
KAPITOLA 13. INTERAKTIVNÍ VEKTOROVÉ EDITORY
Kreslení: Editor kreslí Bézierovy křivky, režim směrových vektorů lze nastavit. Děravé objekty umí.
Nepraktická je však složitá tvorba uzavřené křivky.
Celkové hodnocení: Velmi příjemný jednoduchý vektorový editor, rychlé a snadné intuitivní ovládání.
Je „šitý na míruÿ možnostem PostScriptu. V testované verzi občas nevykresloval korektně.
13.2
Sodipodi[40]
Obrázek 13.2: Ukázka Sodipodi
Program je psán pro prostředí Gnome. Má velké přehledné menu s funkcemi (trochu se podobá GIMPu).
Umí pracovat se skupinami objektů a má dobrou podporu práce s vrstvami. Nativně pracuje s formátem
SVG. Při změně velikosti je volitelná možnost dodržení proporcí čar. Program umí pracovat s poloprůhlednými objekty! Dobře je implementováno i volné kreslení.
Čeština: Písma Latin-2 program ignoruje.
Kreslení: Program kreslí Bézierovy křivky, režim směrových vektorů lze nastavit. Nepříjemný je způsob,
jakým se přechází od jedné křivky k druhé (pokud je čára tenká, jsme často nuceni kliknout čtyřikrát).
Uzavření křivky je též pracné. Děravé křivky umí. V programu jsem nenalezl standardní „natahovacíÿ
nástroj pro kreslení Bézierových křivek – pomocí volného kreslení nakreslíme křivku, a tu pak upravujeme
editorem bodů.
Import a export: Eps se mi nepodařilo naimportovat. Též výstup do eps se mi podařil pouze pomocí
zachycení tiskového výstupu. Při práci s poloprůhledností generuje bitové mapy. Vzhledem k podpoře SVG
by však neměl být problém použít externí převodník (zatím však o žádném volně šiřitelném nevím).
Celkové hodnocení: Dobrý grafický editor s rozsáhlými možnostmi a s velkými ambicemi. Zejména ti,
kteří chtějí pracovat se SVG, jej uvítají. Jeho hodnotu však prozatím mírně snižuje složitější ovládání
některých funkcí a chybějící podpora jiných formátů než SVG.
13.3
Kontour[98]
Kontour je jednou ze součástí balíku KOffice[97] pro KDE a má ambice stát se standardním kancelářským
vektorovým editorem.
13.4. STARDRAW
79
Obrázek 13.3: Ukázka Kontour
Čeština: Neměl větší problémy s češtinou, pouze drobné se standardními písmy, jejichž podpora funguje pouze v PostScriptu LL3, u písem Helvetica a Times navíc zobrazoval zubatou bitovou mapu (tyto
problémy lze ovšem přičíst na vrub X-serveru, který neumí při zobrazení správně vybrat mezi bitmapovou
a vektorovou verzí písma).
Ze zajímavých vlastností pak uvedu funkci text podél cesty (mě ovšem ukázala graficky zpracované
hlášení o pádu programu).
V testované verzi se občas nezobrazovala barva výplně.
Ovládání lze vytknout podobné neduhy jako u Sodipodi – problémový přechod z křivky na křivku (je
nutné se přesně trefit), problémy s pracností vyvolání některých funkcí.
Nepodařilo se mi zjistit postup, jak vytvořit křivku s dírou, dokonce ani vyrobit z otevřené křivky
uzavřenou. Typ vrcholu Bézierovy křivky se mění dynamicky při editaci podle stisknutého tlačítka (ovšem
pouze mezi úhlovým a symetrickým typem).
Funkce pro volné kreslení je též přítomná, ale vkládá do křivky mnohem více bodů než Sodipodi.
Celkové hodnocení: Dobrý editor s mnoha pomocnými funkcemi (zarovnávání, tvorba rovnostranných
trojúhelníků, eliptických výsečí apod.). Implementace základních funkcí je však místy problematická.
13.4
StarDraw[115]
Součást balíku StarOffice (OpenOffice). Tento program jsem netestoval, neboť devadesátimegabajtový zdrojový balík je i pro rychlý 56k modem a výhodný večerní tarif příliš velké sousto. Podle referencí se však
zdá, že se jedná o kvalitní vektorový editor.
13.5
GYVE[83]
GYVE je dalším editorem, který jsem netestoval. Je založen na Display PostScript serveru (DPS), což se
v mém případě stalo kamenem úrazu.
13.6
Xfig[155] a Figurine[22]
Xfig je svými 16 lety zřejmě nejstarším editorem pro X.
Figurine by měl být následníkem Xfig. Možná je o něco hezčí, nicméně ovládání se mi líbí více u Xfigu.
Pokud se však Xfig spojí (slinkuje) s knihovnou Xaw3d, má také lepší grafické prvky než se stařičkou
knihovnou Athena (Xaw).
80
KAPITOLA 13. INTERAKTIVNÍ VEKTOROVÉ EDITORY
Obrázek 13.4: Ukázka Xfig
Obrázek 13.5: Ukázka Figurine
Místo běžných Bézierových křivek nabízejí editory interpolované a aproximované Bézierovy křivky (tzv.
spline křivky). Pro některé úlohy se spline křivky hodí lépe než běžné Bézierovy křivky, ale pro normální
kreslení příliš vhodné nejsou.
Čeština: Samotný Xfig umožňuje česky psát, nikoli však tisknout. Existuje počešťovací úprava.
Import je možný pomocí epstoedit. Vzhledem k jinému druhu použitých křivek však narůstá počet bodů,
navíc nelze importovat děravé objekty. Importované bitové mapy nelze rotovat. K dispozici jsou exportní
filtry do mnoha formátů, mezi nimiž je také eps.
Celkové hodnocení: Poněkud netypický editor. Na klasickou grafickou práci se příliš nehodí, ale je výborným nástrojem pro kreslení plánků a diagramů. Jeho schopnosti v tomto směru podporuje i velká knihovna
grafických elementů – domy, integrované obvody i noty. Dobře pracuje se skupinami prvků i s hloubkou.
13.7
GIMP[78]
Ne každý si všiml, že GIMP obsahuje hned dva vektorové editory. Jsou jimi editor cest a Gfig.
Obrázek 13.6: Ukázka editoru cest
13.8. IMPRESS
81
Editor cest: Tento editor, jak název napovídá, umí jediné – vytvářet v obrázku cesty. Zahrnuje zcela
unikátní nástroj zvaný inteligentní nůžky (kterým, pokud vím, žádný jiný program nedisponuje). Nepříjemné ovšem je, že tuto cestu zatím nelze exportovat do žádného přenositelného formátu. Věci však nejsou
až tak tragické. Skript path2ps[126] vytvoří ze zapsané GIMPové cesty čistý PostScriptový kód, který lze
s trochou ruční práce vložit přímo do EPS souboru.
Obrázek 13.7: Ukázka Gfig
Gfig: Editor je jakousi obdobou Xfigu, umí Bézierovy křivky, ale jinak má poněkud omezené možnosti.
Kreslí přímo do vrstvy GIMPu zvolenou stopou. Je nepříjemné, že editor srostlý s bitmapovým editorem
nemá lupu a neumí obrázky v náhledu prolnout. Prakticky jej nelze ovládat na pixel přesně. Za nejhorší
vlastnost považuji neuvěřitelnou nepřesnost při kreslení některých tvarů.
13.8
ImPress[114]
Obrázek 13.8: Ukázka ImPress
Program založený na tcl/tk. Jeho možnosti jako vektorového editoru jsou značně omezené – chybí editor
křivek. Silnou vlastností je naopak skutečnost, že nativním formátem je tcl/tk a zapsaný soubor je přímo
spustitelný interpretrem wish jako grafická prezentace. Opět chyba v inicializaci XKB, češtinu se vnutit
nepodařilo a informaci o kódování ignoruje. Často také vytvoří nekorektní tcl kód.
13.9
Scribus[44]
Program založený na Qt. Nejde o vektorový editor, ale o nástroj pro DTP. Nemá podporu Bézierových
křivek, zato umí obtékat obrázky textem. Podporuje většinu funkcí potřebných pro sazbu a zlom. Nalezneme
v něm dokonce již částečnou podporu pro barevnou separaci!
82
KAPITOLA 13. INTERAKTIVNÍ VEKTOROVÉ EDITORY
Obrázek 13.9: Ukázka Scribus
Obrázky lze obdélníkově oříznout a rotovat. Opět jsou problémy s češtinou. Grafickými objekty jsou
rovná čára, obdélník a ovál.
13.10
Dia[108]
Obrázek 13.10: Ukázka Dia
Dia není typický vektorový editor, ale editor diagramů. Obsahuje základní podporu vektorového kreslení.
Má bohatou výbavu značek pro tvorbu diagramů. Styčné body prvků jsou „lepivéÿ, a pokud např. k bázi
tranzistoru připojíte čáru, při stěhování prvku se automaticky přemístí i čára.
Doufám, že jsem nějaký zajímavý otevřeně kódový projekt neopomněl . . .
Kapitola 14
Výstupní rozlišení a půltónování
Většina výstupních zařízení nedokáže přímo zobrazovat vektorové obrazy ani plynulé stupnice šedi, ale
skládá obraz z drobných teček plné barvy. Proto má výstupní rozlišení a půltónování takový význam pro
kvalitu tisku. V této kapitole se dozvíte více o výstupním rozlišení, o frekvenci rastru, hodnotách DPI a LPI
a o napravování chyb vznikajících při nízkém rozlišení.
Nejdůležitějším parametrem výstupního zařízení je bezesporu rozlišení. Rozlišení při skenování jsme
věnovali část kapitoly 4, nyní si téma dokončíme.
14.1
Výstupní rozlišení
Pokud zařízení pracuje na rastrovém principu, pak v naprosté většině případů skládá obraz z drobných bodů
– pixelů (zkomolená zkratka anglického picture element – element obrázku) – rozmístěných v čtvercové
nebo obdélníkové síti. Body mohou nabývat pouze dvou (tiskárny) nebo určitého množství (obrazovky)
diskrétních hodnot. Vzájemná vzdálenost těchto bodů dává jednu důležitou informaci o kvalitě zařízení.
Toto rozlišení se udává většinou v bodech na palec (DPI) nebo na centimetr.
Pokud je rozlišení tiskárny menší než 200 DPI, jsou jednotlivé body jasně patrné i z běžné čtecí vzdálenosti. Do této kategorie dnes patří jen faxy.
Pokud je rozlišení tiskárny 300–400 DPI, jsou jednotlivé body z běžné čtecí vzdálenosti jen nepatrně
viditelné. Výrazně se však ještě může projevovat zkreslení písmen a tloušťky čar.
Při rozlišení 600–800 DPI (běžné laserové tiskárny) lidské oko jednotlivé pixely běžně nevidí. Lze je
však spatřit u ostrých špiček a jemně stoupajících čar a školené oko je stále ještě schopné spatřit jemné
deformace písmen. S vzrůstající hodnotou rozlišení tyto jevy postupně ustupují. Při rozlišení 1200 DPI jsou
již nepatrné a při rozlišení 1800 DPI lidskému oku zcela mizí.
Přesto však rozlišení špičkových osvitových jednotek (4000 DPI a více) není zbytečné, protože má vliv
na kvalitu rastrů.
14.2
Rozlišení a PostScript
Efekty spojené s nízkým rozlišením řeší v PostScriptu několik technik.
U písem se jedná o zeštíhlení (hinting – viz kapitola 9), které zaručí, že např. dřík písmena L bude
stejně silný jako dřík písmena R.
U čar jde o operátor setstrokeadjust (Level 2). Bez jeho nastavení se obarví pixely, jejichž střed leží
uvnitř čáry. To může způsobit, že čára jedné a téže tloušťky bude kreslená různým počtem pixelů v závislosti
na poloze. Nastavením setstrokeadjust se zavede korekce, která zajistí vždy stejnou tloušťku čáry.
83
84
KAPITOLA 14. VÝSTUPNÍ ROZLIŠENÍ A PŮLTÓNOVÁNÍ
Obrázek 14.1: Výsledek setstrokeadjust
Čáry o tloušťce 1,1 pixelu (naznačeny zeleně): nahoře bez korekce setstrokeadjust, dole s korekcí.
14.3
Vyhlazování (antialiasing)
Obrázek 14.2: Výsledek vyhlazování
Obrazec vlevo je kreslený bez vyhlazování, napravo s vyhlazováním. Na dolních obrázcích je 4× zvětšený
ukázkový výřez.
Některá výstupní zařízení mají opačný problém – malé rozlišení, ale naproti tomu vysoký počet dostupných odstínů (např. obrazovka). Je-li potřeba na nich co nejlépe zobrazit vektorovou grafiku, musí
se naopak provádět vyhlazování hran. Jde o postup, při kterém se čáry nekreslí ostře ohraničené, ale ty
pixely, které leží na hranici různě obarvených oblastí, se vybarvují směsí barev oblastí, na kterých bod leží.
Výpočtem hodnoty směsí se zabývá několik algoritmů, jejichž použití závisí na formě a množství vstupních
dat. Univerzální, ovšem výpočetně nejnáročnější metodou, je podvzorkování, kdy se celý obraz vypočte
ve vyšším rozlišení a poté se každému bodu přiřadí průměr několika hodnot.
U všech algoritmů vyhlazování je třeba brát v úvahu gama korekci.
14.4
Rozklad obrazu (půltónování)
Rastrování slouží k převodu bitové hloubky vstupních dat do bitové hloubky výstupního zařízení, která je
typicky menší.
Zatímco některá zařízení mají problém s vykreslením osamoceného bodu (např. laserové tiskárny či
běžný ofsetový tisk), jiným naopak nesvědčí větší vyplněné plochy (např. inkoustovým tiskárnám). Proto
také vznikly metody používající různé rozkladové obrazce:
Bodový rozklad: Při rozkladu polotónů bodovým rozkladem vzniká množství osamocených bodů ve velikosti jednoho pixelu. Ty jsou pro lidské oko nejméně patrné, ale nejvíce náchylné na změnu velikosti
při tisku. Bodový rozklad je vhodný pro indexované obrázky, inkoustové tiskárny a inkoustové plotry.
Hustota bodů je zde dána rozlišením výstupního zařízení. Někdy se tento typ rozkladu po vzoru
elektrotechniky nazývá frekvenční modulace.
Rastrový rozklad: Při rastrovém rozkladu vzniká ve víceméně stejném rozestupu množství různě velkých
bodů. Tento rozestup je dán výrobcem zařízení anebo uživatelem. Hustota rastrů se udává v linkách
na palec (LPI) nebo centimetr a nazývá se frekvence rastru. Rastrový rozklad je vhodný pro laserové
tiskárny a ofsetový tisk. Někdy se nazývá amplitudová modulace.
14.5. MOŽNÉ POSTUPY ROZKLADU OBRAZU
85
Čárový rozklad: Při čárovém rozkladu vzniká na obrazu množství rovných nebo klikatých čar. Podobně
jako u bodů lze rozlišit dva různé typy rozkladu – frekvenční (čáry mění hustotu) a amplitudový
(čáry mění tloušťku). Při návrhu tohoto rozkladu je třeba vzít v úvahu, že čáry bývají viditelné lépe
než body. Nejznámějším typem tohoto rozkladu je šrafování a nejčastěji se tento rozklad používá
u pisátkových plotrů.
14.5
Možné postupy rozkladu obrazu
Vlastní algoritmus rozkladu silně ovlivňuje jeho použitelnost v různých programech. Pomineme-li triviální
a nepoužitelné metody, lze rozklad obrazu provést několika způsoby:
Obrázek 14.3: Floyd-Stenibergův rozklad
Obrázek z kapitoly 2 s Floyd-Steinbergovým rozkladem.
Difúze chyby (error diffusion): Jde o metodu rozkladu na body. Při tomto postupu se provádí „aproximaceÿ vstupní hodnoty černou nebo bílou (případně jinými dostupnými odstíny). Při této „aproximaciÿ vzniklá „chybaÿ je pak podle určité rozptylové matice rozptýlena do okolních bodů (z výpočetních důvodů pouze do těch, které jsme ještě „neaproximovaliÿ. Při „aproximaciÿ dalších bodů
pak místo původních hodnot bereme v úvahu hodnoty upravené rozptylem chyby. Při vhodně volené
rozptylové matici získáme nepravidelný jemný bodový rozklad. Mezi nejznámější rozptylové matice
patří Floyd-Steinberg, Sierra a Stucki.
Nevýhodou algoritmů difúze chyby je nutnost znát v době tvorby rastru hodnoty ve všech bodech
obrazu. To vylučuje možnost rozumné integrace této metody do PostScriptu.
Obrázek 14.4: Vyplnění Hilbertovou křivkou
Obrázek vyplněný Hilbertovou křivkou.
Stochastické rastry (stochastic screens): Vznikají neopakujícím se umístěním bodů nebo čar do prostoru. Některé z těchto metod využívají přímo náhodný generátor. Jejich problémem je najít dostatečně náhodný a rychlý generátor. Při implementaci jiných metod se používají různé sofistikované
86
KAPITOLA 14. VÝSTUPNÍ ROZLIŠENÍ A PŮLTÓNOVÁNÍ
postupy – např. vyplňování Hilbertovou křivkou nebo s použitím neopakujících se funkcí. Vlastnosti
stochastických rastrů se silně mění s použitým algoritmem, většinou se jedná o kvalitní, avšak výpočetně náročné metody.
Obrázek 14.5: Bayerovo seskupení
Obrázek rozložený pomocí Bayerova seskupení.
Pole prahů (threshold array): Máme zadáno čtvercové nebo obdélníkové pole (buňku) s prahovými
hodnotami pro jednotlivé body. Při rozkladu pak hodnoty z buňky pravidelně opakujeme. Jde o jednoduchý, rychlý a široce rozšířený algoritmus. Vhodně navržené buňky se používaly u indexovaných
obrazovek a u jehličkových tiskáren. V PostScriptu se jedná o půltónování typu 3.
Obrázek 14.6: Bodové seskupení
Obrázek rozložený na klasické kruhové body.
Funkce bodu (spot function): Je zadána velikost buňky a vhodná dvourozměrná funkce v intervalu
mezi −1 a 1. Buňku zobrazíme do tohoto intervalu a vypočteme hodnotu funkce. Zjistíme hodnoty
funkce pro středy buněk, setřídíme je podle velikosti (jsou-li stejné, řadíme libovolně) a jednotlivým
středům buněk přiřadíme hodnotu prahu (rovnoměrně rozdělenou mezi 0 a 1). Tím jsme pomocí
jednoduché funkce rychle vytvořili libovolně velké pole prahů. Tato metoda je vůbec nejrozšířenější
metodou pro tvorbu rastrů. V PostScriptu se jedná o půltónování typu 1.
(ukázky rozkladu viz pgmtopbm z balíku NetPBM[41])
Kapitola 15
Tiskové rastry
V minulé kapitole jsme si vysvětlili možné způsoby polotónování. Dnes se budeme zabývat pouze pravidelnými rozklady – rastry a nastavením jejich frekvence. Volba rastru je dalším důležitým parametrem, který
je s rozlišením těsně svázán.
15.1
Rastry
Jak již bylo řečeno, určité typy půltónování – rastry – jsou řízeny zvláštní konstantou – frekvencí rastru.
Při návrhu rastru je nutné brát na jedné straně v úvahu schopnost lidského oka rastr rozlišit, na druhé
straně pak možnosti zařízení rastr vytvořit. Hrubé rastry lze tisknout velmi přesně, ale na druhou stranu
ruší čtenáře, a naopak.
Rastry do 50 LPI jsou dobře patrné i z běžné čtecí vzdálenosti. Používají se např. u faxů, nejjednodušších
tiskáren, ale také na billboardech (u nichž je „běžná čtecí vzdálenostÿ přece jen větší).
Rastry mezi 80 a 110 LPI jsou z běžné čtecí vzdálenosti již skoro neviditelné. Používají se k tisku
levných tiskovin (např. novin). Jejich tisk zvládnou běžné počítačové tiskárny a lze je dobře vytisknout
z fólií a dokonce i pauzovacích papírů.
Rastry 120–140 LPI jsou běžně používány pro ofsetový tisk na nehlazený papír.
Rastry 150–175 LPI se používají při běžném ofsetovém tisku na hlazený a křídový papír. Pro lidi s dobrým zrakem jsou viditelné pouze z těsné blízkosti.
Nejmodernější technologie, jakou je např. bezvodý ofsetový tisk, používají rastry 200–300 LPI. Ty jsou
viditelné jen s lupou.
Většina technologií tisku a typů papíru má jistou horní mez frekvence rastru, za kterou kvalita prudce
klesá. Např. u běžné laserové tiskárny je rastr 106 LPI velmi pravidelný (zvlášť na fólii), ale při rastru 141 LPI
se na jednobarevných podkladech objevují mapy, vznikající nestejnoměrnými podmínkami uvnitř tiskárny.
Přesto však někteří výrobci nových laserových tiskáren s rozlišením 1 200 DPI vnucují svým zařízením
dokonce frekvenci 170 LPI! S tímto rastrem nelze na nehlazeném papíře dosáhnout dobrých výsledků a pouhé
snížení frekvence na 121 LPI rovnoměrnost viditelně zvýší.
15.2
Úhel rastru
Další důležitou veličinou, o které jsme se doposud nezmínili, je úhel rastru. Je to úhel, který určuje sklon
rastru vůči jeho standardní poloze. U symetrických rastrů mají smysl hodnoty mezi 0◦ a 90◦ . Úhel rastru
též ovlivňuje velikost buňky pole prahů (viz předchozí kapitola), na které se rastr při zpracování převádí.
87
88
KAPITOLA 15. TISKOVÉ RASTRY
Jeho správné nastavení se odvozuje od fyziologie lidského oka a u barevného tisku též od harmonického
skládání rastrů.
Při barevném tisku musí být úhly pro různé barvy odlišné, jinak by přesnost soutisku musela být téměř
nekonečná, aby kapky barvy neležely v zákrytu na sobě. Takto leží v polozákrytu, nebereme-li v úvahu
drobné nepřesnosti tisku.
Nejméně rušivé jsou rastry kolem úhlu 45◦ , které se proto používají pro černobílý tisk nejčastěji. Naopak
nejvíce ruší rastry s úhlem kolem 0◦ (a 90◦ ), proto se používají v barevném tisku pro žlutou.
K harmonickému složení více rastrů dojde tehdy, jsou-li velikosti jim příslušejících polí prahů v poměru
malých celých čísel. Pokud tomu tak není, objeví se při tisku neodstranitelné moiré.
Příklad: Dva rastry se složí harmonicky, mají-li stejnou frekvenci a rozdíl mezi jejich úhly je 45◦ nebo
30 . Pokud bychom zvolili 15◦ , vznikne moiré. Harmonickému složení rastru lze též napomoci různými
frekvencemi pro různé barvy.
◦
15.3
Omezení počtu šedí (vztah rozlišení, frekvencí rastru a úhlu)
Mezi výstupním rozlišením, frekvencí rastru a úhlem existuje vztah, který určuje, kolik přechodových barev
lze pomocí takového rastru vytvořit.
Tento počet je:
2
r
počet barev =
+1
f
kde r je rozlišení a f je frekvence rastru.
Další omezení se týká použitelných frekvencí při daném úhlu rastru. Opět platí pravidlo poměru malých
celých čísel mezi rastrem a sítí pixelů, tentokrát z důvodu proveditelnosti výpočtu. Zájemce odkazuji
na popis ve zdrojovém kódu Ghostscriptu (soubor gshtscr.c).
Příklad: Máme běžnou laserovou tiskárnu s rozlišením 600 DPI. Tiskneme starší verzí Ghostscriptu,
která pro tuto tiskárnu implicitně zvolí frekvenci 106 LPI a úhel 45◦ . Počet dosažitelných odstínů bude 33.
Chceme-li rastr zjemnit, další možnou frekvencí bude 141 LPI. Při ní získáme již jen 19 odstínů. Chceme-li
naopak zvýšit počet odstínů, můžeme snížit rastr třeba na 85 LPI, a tím dosáhnout 51 odstínů.
Je vidět, že se jedná o poměrně značné omezení. Jak z toho ven? Jednou z možností je výběr vyššího
rozlišení. Pokud takovou možnost nemáme, přijde vhod vytváření superbuněk z více základních rastrových
buněk.
15.4
Fyzikální a digitální frekvence rastru
Možná vás překvapí, že tyto dvě hodnoty se mohou lišit. Vysvětlení je poměrně jednoduché. Zatímco digitální frekvence rastru (a tím i počet dosažitelných odstínů) je dána velikostí rastrové buňky, fyzikální
frekvence rastru je dána též počtem tiskových bodů (teček) v jedné takové buňce. Pokud používáme běžný
rastr a PostScript Level 1 nebo 2, obě frekvence jsou shodné. V případě PostScriptu LL3 skládá interpretr více buněk dohromady, čímž lze dosáhnout vyššího počtu barev. Velikost této superbuňky ovlivňuje
parametr MaxSuperScreen. Podobného efektu lze dosáhnout i v nižších verzích PostScriptu vytvořením
speciálního rastru.
Zatímco počet barev je v případě superbuněk určen digitální frekvencí rastru, jeho fyzikální vlastnosti
(viditelnost pouhým okem či přenosová funkce) jsou určeny převážně fyzikální frekvencí rastru. Daní za toto
vylepšení je místy viditelné střídání teček různé velikosti. Celkový dojem z výtisku je však výrazně lepší.
Překvapilo mne, že tato funkce je v Ghostscriptu již delší dobu naimplementována, bohužel však s chybou, která ji pro běžná nastavení deaktivuje. Chybové hlášení jsem právě napsal, takže možná již zítra
budeme tisknout lépe bez dalších úprav . . .
15.5. RASTRY A POSTSCRIPT
89
Příklad: Použitím superbuňky o 2 × 2 buňkách lze u výše uvedené tiskárny v případě frekvence rastru
106 LPI zvýšit počet šedí z 33 na 129, v případě 141 LPI z 19 na 73!
15.5
Rastry a PostScript
V PostScriptu se nejčastěji používají pravidelné rastry. Pro jednoduché rastry jsou vyhrazeny funkce
setscreen (se třemi parametry: frekvence, úhel, funkce bodu) a setcolorscreen (s 4 × 3 parametry
pro jednotlivé výtažky), pro složitější je k dispozici funkce sethalftone (jejímž parametrem je slovník
s požadovanými hodnotami).
Některé programy umějí nastavit rastry přímo, z PPD souboru nebo vložit hlavičkový soubor s rastrem
(např. dvips -h), jiným musíme pomoci ručně několika řádky PostScriptového kódu. Tento kód je nutné
vřadit za inicializaci zařízení, ale před obsah první stránky. Ideální místo najdeme podle strukturovaných komentářů – vhodné je těsně před strukturovaným komentářem %%EndSetup, případně před prvním
z komentářů %%Page:. V případě Ghostscriptu máme ještě možnost volby -dDITHERPPI=frekvence v LPI
na příkazovém řádku.
15.6
Příklady
Všechny tyto příklady jsem vygeneroval pomocí jednoduchého testu[135] (a ruční editací tohoto souboru)
generujícího následující přechod. Není-li uvedeno jinak, použil jsem opravdu hrubý a dobře viditelný rastr
o frekvenci 5 LPI.
Upozornění: Tyto jednoduché rastrové funkce nejsou odolné vůči chybnému nastavení – např. použití
jiného typu půltónování.
Obrázek 15.1: Test v šedích
Takto vypadá standardní bodový rastr Ghostscriptu používaný pro tiskárny.
Obrázek 15.2: Tiskový rastr Ghostscriptu
Takto vypadá standardní pole prahů, které si Ghostscript sám zvolí pro náš test s malým rozlišením.
Tato jednoduchá hlavička[137] změní úhel rastru na 15◦ .
%%BeginFeature: *ResScreenAngle 15
currentscreen exch pop 15 exch setscreen
%%EndFeature
90
KAPITOLA 15. TISKOVÉ RASTRY
Obrázek 15.3: Rastr Ghostscriptu pro malá rozlišení
Obrázek 15.4: Rastr 15◦
Funkce bodu je funkcí mezi −1 a 1. Ze dvou vstupních proměnných generuje jednu výstupní hodnotu.
Nejjednodušší funkcí bodu je zřejmě funkce pro čáry[132] – jednu proměnnou zahodí a druhou prohlásí
za výstupní hodnotu.
%%BeginFeature: *ScreenProc Line
currentscreen pop
{ pop }
setscreen
%%EndFeature
Obrázek 15.5: Čárový rastr
Jen o málo komplikovanější funkcí[131] vygenerujeme třeba mřížku.
%%BeginFeature: *ScreenProc BlackGrid
currentscreen pop
{ dup 3 2 roll dup 4 1 roll add abs
3 1 roll sub abs add .25 mul }
setscreen
%%EndFeature
Nyní se podíváme, jak jednoduchá je hlavička pro změnu frekvence rastru na 25 LPI[138]. Náš obrázek
má rozlišení 72 DPI, a tak touto změnou dostaneme přechod složený pouze z devíti odstínů.
%%BeginFeature: *ResScreenFreq 25
currentscreen 3 -1 roll pop 25 3 1 roll setscreen
%%EndFeature
15.6. PŘÍKLADY
91
Obrázek 15.6: Mřížový rastr
Obrázek 15.7: Změna frekvence rastru na 25 LPI
K nápravě tohoto stavu jsem připravil přídavnou hlavičku[134], kterou lze zařadit za libovolné nastavení
rastru (včetně implicitního) a z obyčejného rastru vygeneruje rastr se superbuňkami o 2 × 2 buňkách.
Fyzikální frekvence zůstane 25 LPI, ale počet odstínů naroste na 33. Doporučuji tuto hlavičku vyzkoušet
na fotografii z laserové tiskárny.
%%BeginFeature: Supercell Creator
% (c) 1999-2001 Stanislav Brabec, UTX
% please note that it works
% only for "good" frequencies
/screendict 1 dict def
currentscreen
3 2 roll 2 div 3 -2 roll
screendict begin /oldspot exch def end
{
dup floor sub 2 mul 1 sub
exch
dup floor sub 2 mul 1 sub
exch
screendict begin oldspot end
}
setscreen
%%EndFeature
Obrázek 15.8: Rastr o frekvenci 25 LPI se superbuňkami
Tato jednoduchá ukázka[133] napodobuje pomocí (ne)vhodně volených hodnot stochastický rastr. Pro
použití u tiskáren bude zřejmě nutné zvýšit frekvenci rastru (první číslo).
92
KAPITOLA 15. TISKOVÉ RASTRY
%%BeginFeature: pseudo-stochastic screen
.5 1 { pop pop rand 2 31 exp div } setscreen
%%EndFeature
Obrázek 15.9: „Náhodnýÿ rastr
Sice nepoužitelná, ale zato krátká ukázka pole prahů[136]. Funkce je dostupná i v Level 1, je ale nutné
použít jinou syntaxi. Lepší najdete v inicializačním souboru Ghostscriptu gs init.ps.
%%BeginFeature: trivial threshold array
%%LanguageLevel: 2
<<
/HalftoneType 3
/Width 2
/Height 2
/Thresholds (\063\146\231\314)
>> sethalftone
%%EndFeature
Obrázek 15.10: Pole prahů
Kapitola 16
Přenosové funkce, výroba PDF
a postscriptové triky
V této kapitole dokončíme sérii článků o PostScriptu a tisku a ukážeme si způsob, jak doladit tisk na černobílých tiskárnách. Dále si popíšeme, jak se „destilujeÿ PostScript pomocí ps2pdf z Ghostscriptu. Nakonec
splním svůj slib a předvedu pár několikařádkových postscriptových triků, které potvrzují, že znalost PostScriptu není ani ve světě komerčních aplikací k zahození.
V předchozích kapitolách jsme si vysvětlili význam rozlišení a rastrů a naznačili si jejich použití v PostScriptu. Umíme již nastavit správný rastr a frekvenci do PostScriptového souboru, i když to aplikace
nepodporuje.
Rastry by nám však nebyly nic platné, kdybychom posílali do tiskárny data lineárně úměrná stupni šedosti (o nelinearitě tiskového procesu jsme se zmínili v kapitole 2). A tak je ke kvalitnímu nastavení tiskárny
potřebné přidat další veličinu – přenosovou funkci. Přenosová funkce závisí nejenom na konkrétní tiskárně,
ale také na zvoleném rastru a jeho frekvenci. Vyšší frekvence rastrů bývají náchylnější k nežádoucím jevům,
které většinou působí změnu kontrastu a ztmavnutí. Přenosová funkce pak tento jev koriguje.
Pro černobílý tisk však k jejímu základnímu nastavení nepotřebujeme měřící aparatury, ale vystačíme
s vlastním zrakem. Vytiskneme si „referenční tabulkuÿ (což je obyčejná tabulka s různě tmavými čtverečky,
vytištěná s žádanou hodnotou přenosové funkce a s velmi nízkou frekvencí rastru – vzniklé barvy jsou při
pohledu z velké dálky poměrně přesné). Druhou tabulku vytiskneme s rastrem, který budeme chtít v praxi
používat, a tabulky poté porovnáme. Pomocí některé z níže uvedených přenosových funkcí si vytvoříme
korekci a upravujeme, dokud nejsme spokojeni. Podobně můžeme za referenci považovat obrazovku svého
monitoru a přenosovou funkci upravit tak, aby výtisk odpovídal monitoru.
K nastavení přenosové funkce v PostScriptu slouží operátory settransfer, setcolortransfer a též
jeden z parametrů v předchozí kapitole zmíněného sethalftone. Přenosová funkce je též součástí barevných
profilů barevných tiskáren.
Nejjednodušší přenosovou funkcí je – jak to bývá obvyklé – žádná přenosová funkce (přesněji řečeno
identická funkce). Tato myšlenka vznikla v době prvních DTP pracovišť na počítačích Apple Macintosh.
Obraz byl před zobrazením na monitor upraven tak, aby se po vytištění na tiskárně LaserWriter jevil stejně
tmavý jako na obrazovce. Na počítačích PC se sice tato korekce nepoužívá, ale na druhou stranu dnešní
tiskárny tisknou často jemnějším rastrem, a proto i o trochu tmavěji. A tak pro nenáročný černobílý tisk
tato praxe stále ještě přetrvává. Ztmavnutí odstínů způsobené elektronovým dělem obrazovky (a korigované
gama křivkou) je podobné ztmavnutí způsobenému nárůstem tiskového bodu při tiskovém procesu.
%%BeginFeature *DefaultTransfer Null
{} settransfer
%%EndFeature
93
94
KAPITOLA 16. PŘENOSOVÉ FUNKCE, VÝROBA PDF A POSTSCRIPTOVÉ TRIKY
Chceme-li posílat do tiskárny data bez gama korekce, může nám posloužit přenosová funkce [146],
provádějící gama korekci (za hodnotu číslo je třeba si doplnit hodnotu 1/gama). Stejná funkce, ovšem
s jinou hodnotou, nám poslouží k jednoduchému ztmavení (hodnoty větší než 1) nebo zesvětlení (hodnoty
menší než 1) tisku.
%%BeginFeature *Transfer gamma číslo
{číslo exp} settransfer
%%EndFeature
Nakonec uvádím jednoduchou interpolovanou přenosovou funkci [145]. Zadáme hodnotu přenosové
funkce v některých bodech (každé dvě číslice ve špičatých závorkách dávají jedno hexadecimální číslo
určující hodnotu, přičemž řada čísel může být libovolně dlouhá). V uvedeném příkladě dává řada lineární
přenosovou funkci, ale úpravou čísel, případně předřazením gama funkce lze docílit libovolné přenosové
funkce.
%%BeginFeature *Transfer Interpolated
{
<00112233445566778899aabbccddeeff>
dup length 1 sub 3 -1 roll mul dup floor cvi
2 index exch get exch dup ceiling cvi dup
5 -1 roll exch get 3 1 roll exch sub exch
2 index sub mul add 255 div
} settransfer
%%EndFeature
Hlubší zájemce o rastry odkazuji na PostScript Language Reference Manual[33], kde se mohou dozvědět
např. o přesných rastrech (AccurateScreens), fázi rastru na obrazovkách (sethalftonephase), nastavení
rastrů pro barevná zařízení a o dalších možnostech postscriptového rastrování.
16.1
Převod PostScriptu na PDF
Geniální aplikací pro vytváření PDF souborů je PDFTEX z distribuce TEXu[64].
Mnohé aplikace však nemají možnost přímého výstupu do PDF souboru. Protože PDF při práci často
potřebujeme (nejen proto, že uživatelé jiných platforem většinou nejsou schopni zobrazit ani vytisknout
postscriptový soubor, byť mají postscriptovou tiskárnu – viz kapitola 7), je třeba jej vyrobit z PostScriptu.
Tento proces se často nazývá „destilaceÿ, podle nejznámější aplikace, která tuto funkci nabízí. V oblasti
otevřeného kódu slouží k této činnosti Ghostscript[77].
Jeden z nástrojů, které získáme při instalaci Ghostscriptu, se jmenuje ps2pdf. V posledních dvou letech
jeho vývoj nabral obrátky, a tak dnes je ps2pdf schopný ostrého nasazení (posledními přetrvávajícími
chybami jsme se zabývali v kapitole 10).
K tomu, aby nám dobře sloužil, je třeba určité vyladění. Předně několika standardům formátu PDF
(potažmo i verzí programu Acrobat Reader) odpovídají programy ps2pdf12 a ps2pdf13 (nebo přepínač
-dCompatibility=1.x). Program má navíc několik předvolených nastavení. Momentálně jde o 4 možnosti –
implicitní nastavení (vhodné pro většinu výstupních zařízení za cenu většího souboru – bez volby na příkazové řádce nebo pomocí -dPDFSETTINGS=/default), pro obrazovku (nejmenší soubor a nejmenší kvalita –
nastavení -dPDFSETTINGS=/screen), pro tiskárnu (vhodné pro tisk – nastavení -dPDFSETTINGS=/printer)
a pro předtiskovou přípravu (vyšší kvalita, ale i delší soubor – nastavení -dPDFSETTINGS=/prepress).
Navíc, podobně jako u rastrů, můžeme jemně ovlivňovat jednotlivá nastavení pomocí hlavičkového
souboru. Ukázkový soubor[128] obsahuje jedno z takových nastevení, které je určeno pro posílání souborů
na digitální tiskový stroj s rozlišením 600 DPI (s rezervou nastavení v kvalitě fotografií). Chcete-li si připravit
takový soubor s parametry sami, stačí se podívat do dokumentace ke Ghostscriptu, na jeho knihovní soubor
gs pdfwr.ps (kde najdete kompletní definici přednastavených hodnot) nebo přímo do specifikace těchto
parametrů v dokumentu Acrobat Distiller Parameters[33].
Za zmínku též stojí další programy z balíku Ghostscript – např. pdf2ps, ps2ps či ps2epsi. Vytvoření
dalších je otázkou několika minut, o čemž svědčí např. pdf2eps[127], vyrobený z pdf2ps.
16.2. POSTSCRIPTOVÉ TRIKY
16.2
95
PostScriptové triky
Před nějakou dobou jsem vám slíbil několik postscriptových triků. Jedná se o několikařádkové programy,
řešící problém, na kterém v mnoha případech neuspělo studio vybavené drahým softwarem.
16.2.1
Vyrastrování do souboru
Tento příkazový řádek používám vždy, když chci pomocí Ghostscriptu vyrastrovat nějaký postscriptový
soubor:
Tento příkaz rastruje tiskové strany pro tiskárnu PCL s rozlišením 600 DPI (poslední soubor o délce
2 byty je potřeba smazat).
gs -r600 -sDEVICE=ljet4 -dQUIET \
-sOutputFile=\textit{jméno}_%03d.pcl \
-dNOPAUSE -dBATCH \textit{jméno} -c quit
A tento příkaz rastruje postscriptový soubor do obrázků ve formátu TIFF s rozlišením 300 DPI.
gs -r300 -sDEVICE=tiff24nc -dQUIET \
-sOutputFile=\textit{jméno}_%03d.tif \
-dNOPAUSE -dBATCH \textit{jméno} -c quit
16.2.2
Word2eps (aneb z MS-Wordu do QuarkXPressu přes GNU-Linux)
Zákazník si pracně vytvořil svůj inzerát ve Wordu. Protože hrozilo, že jej budu muset přesadit v TEXu,
připravil jsem následující postup zpracování (neručím za to, že bude fungovat také u vás):
• Požádáme majitele MS-Wordu (nejlépe toho, kdo tiskovinu připravil), aby si nainstaloval některý
z postscriptových ovladačů a dokument vytiskl po jednotlivých stránkách do souboru. (Jde o nejriskantnější část operace – dokument se při tisku na jiné tiskárně může zcela rozpadnout nebo být
netisknutelný.)
• Odstraníme případné zbytečné zapouzdření v jazyce PJL (několik znaků na začátku a konci souboru).
• Spočteme skutečnou hodnotu ohraničujícího rámu příkazem gs -sDEVICE=bbox -dQUIET -dNOPAUSE
-dBATCH jméno souboru.ps a těmito hodnotami nahradíme původní, uvedené poblíž začátku souboru.
• Někam na začátek postscriptového souboru (nejlépe těsně za první komentář %%BeginProlog) vložíme
následující řádky postscriptového kódu, které „oddefinujíÿ nežádoucí operátory:
/setpagedevice {pop} def
/setmatrix {pop} def
/= {pop} def
• Nyní můžeme souboru dát příponu .eps. Sice se ještě nechová jako slušný EPS, neboť maže své
okolí, ale např. v TEXu stačí na jeho „umravněníÿ příkaz \epsfclipon z balíku epsf anebo \psclip
z pstricks.
• Protože se ukázalo, že tento soubor použije kolega ve výše uvedeném QuarkXPressu, bylo nutné ještě
vygenerovat náhled podle postupu z kapitoly 10.
96
KAPITOLA 16. PŘENOSOVÉ FUNKCE, VÝROBA PDF A POSTSCRIPTOVÉ TRIKY
16.2.3
Bitová maska v TEXu
V PostScriptu existuje zajímavá možnost obarvit černobílou bitmapovou čárovou grafiku. Některé programy, např. poslední verze tiff2ps, již umějí takový EPS vyrobit, jiným lze pomoci záměnou hodnoty
1 nebo O za údajem o velikosti obrázku v parametrech příkazu image za false nebo true a výměnou
operátoru image za imagemask a odstraněním operátoru setgray i s parametrem.
V TEXu však takto vygenerovaný obrázek pokusům o obarvení nadále odolává. Je to tím, že před
vložením obrázku se barva vždy nastavuje na černou. Lze si proto pomoci následujícím příkazem, který
tuto vlastnost zablokuje (kód je pro plainTEX):
\def\maskedepsf#1{
{\special{ps: save
/normalscale{Resolution 72 div VResolution 72 div
neg scale magscale{DVImag dup scale}if}N
/setgray {pop} def
/setrgbcolor {pop pop pop} def
/setcmykcolor {pop pop pop pop} def
}%
#1\special{ps: restore}\special{color pop}}}
Nyní už můžeme psát \Green{\maskedepsf{kresba.eps}}.
16.2.4
Jednoduchá separace do dvou barev
Neumí váš oblíbený program dvoubarevný tisk nebo jste nepočítali s možnosti separace? Pak vám přijde
vhod jednoduchý kód, který sice nevyseparuje obrázky, ale text a čáry ano.
Následující kód předpokládá, že jste sázeli černě a modře a že váš program používá barevný prostor
RGB a operátor setrgbcolor pro obě tyto barvy.
První hlavička[124] způsobí zmizení modré, zatímco černou ponechá.
%!
/setrgbcolor {
add dup 2 div 3 1 roll add 3 div
dup 3 1 roll sub
4 mul add
setgray } bind def
Druhá hlavička[125] naproti tomu vymaže černou a modrou vykreslí černě.
%!
/setcolor {
add dup 2 div 3 1 roll add 3 div
sub
6.01 mul 1 exch sub
setgray } bind def
Kapitola 17
Bitmapové formáty TIFF a JPEG
Dnes se podíváme detailněji na nejběžnější formáty pro bitmapové obrázky – TIFF a JPEG, na jejich
vnitřní uspořádání dat a možnosti použití.
Před zhruba dvaceti lety, kdy vznikaly uživatelsky přístupné grafické editory, došlo k obrovské explozi
grafických formátů. Podobně jako dnes u kancelářských aplikací, každý výrobce si zavedl vlastní formát,
nepřevoditelný na cokoliv jiného. Některé formáty přežily (PCX, BMP, ICO, IMG, TGA) a staly se de facto
standardy, některé se alespoň dočkaly převodníku do standardních formátů, jiné zcela zmizely v propadlišti
dějin (včetně obrázků v nich uložených). Další byly navrženy jako formáty pro přenos dat, aniž by měly
za cíl stát se standardy (PNM, MIFF). Poslední kategorii tvoří ty, jež byly již jako standardy navrženy
(GIF, TIFF, JPEG, PNG, MNG, IFF, PostScript).
V kapitole 1 jsme se seznámili s knihovnami pro práci s grafickými formáty, dnes se na tyto formáty
podíváme podrobněji.
17.1
TIFF
Nepsaným standardem pro grafickou práci je TIFF. Původně byl vytvořen firmou Aldus Corporation (nyní
již pohlcenou firmou Adobe Systems Incorporated) v roce 1986. Dnes je podporován většinou aplikací
a nabízí vše, co k přenosu souborů potřebujeme. Obsahuje podporu všech barevných prostorů, vyšší bitové
hloubky, rozlišení a dalších polí. Jde o formát rozšiřitelný, takže aplikace si do něj může ukládat svá vlastní
data, aniž by narušila čitelnost souboru v jiné aplikaci.
Existují dva formáty uložení dat v souboru TIFF podle paměťové reprezentace – little endian a big
endian. Většina aplikací rozumí oběma, nicméně ten „nativníÿ čte rychleji. Hodnoty se v souboru TIFF
ukládají jako 8, 16 nebo 32bitová celá čísla, jako 4 nebo 8bajtová reálná čísla, případně jako zlomek dvou
32bitových celých čísel.
Formát umožňuje uložit více obrázků či vrstev v jednom souboru. Hlavička souboru odkazuje na seznam, jehož jednotlivé položky – adresáře obrázkového souboru – popisují jednotlivé obrázky. Skládají se
z 12bajtových položek, které obsahují visačku (tag), což je informace o typu uložených dat, a dále vlastní
informaci, případně odkaz na místo, kde jsou data uložena.
Kromě vlastních dat mezi nejdůležitější visačky patří bitová hloubka, komprese (je registrováno přes 20
kompresních schémat, mezi široce podporované patří Huffman RLE, CCITT FAX G3 a G4, LZW, Packbits
a JPEG, mezi ostatní i OJPEG a JBIG), fotometrická interpretace (nula znamená bílou, nula znamená černou, RGB, indexovaný, maska obrázku, barevná separace, YCbCr – CCIR 601, CIE L*a*b*, CIE Log2(L),
CIE Log2(L) (u’,v’)), rozlišení a jeho jednotky, umístění vrstvy, barevný profil a další kalibrační údaje, dále
mnoho informačních visaček (jméno autora, aplikace, typ skeneru a použité rastrování aj.) a visaček přesně
specifikujícich formát obrázkových dat. Zmíním se pouze o jedné z nich – o řadách na pruh (rows per strip).
Jde o historickou hodnotu: Rozřezáním obrázku na pruhy a jejich samostatnou kompresí byla omezena paměť pro dekompresi dat za cenu zvětšení souboru. Původní doporučení bylo vybrat takovou hodnotu, aby
97
98
KAPITOLA 17. BITMAPOVÉ FORMÁTY TIFF A JPEG
jeden pruh nepřesáhl 8 kB. Dodnes některé aplikace používají implicitně tuto hodnotu. Máme-li možnost
ji zvýšit, udělejme to.
Strukturu souboru si můžeme prohlédnout např. programem tiffinfo.
17.1.1
TIFF a komprese
Nerozumí-li aplikace datům ve speciálních položkách, nic se nestane a obrázek bude načten bez problémů.
To však neplatí o kompresi, bitové hloubce a fotometrické interpretaci. Ty jsou pro zpracování dat zcela
zásadní. Všechny aplikace rozumějí 8bitovým datům černobílým, v šedích nebo v barvách RGB a bez
komprese.
Většina aplikací též zvládá kompresi Packbits (pakování bitů, Macintosh RLE), některé i CCITT Huffman RLE (deflační komprese). Černobílé komprese CCITT T.4 (známou jako fax group 3) a kompresi
CCITT T.6 (fax group 4) zvládá mnoho volně šiřitelných a sharewarových aplikací (i když některé inverzně vinou nejasné pasáže ve staré verzi specifikace), ovšem komerční aplikace jsou s implementací této
výborné kompresní metody pozadu. Podobně je to i s kompresí ZIP. Obrácená je situace s kompresí LZW
(Lempel–Ziv–Welch). Vzhledem k agresivní licenční politice firmy Unisys na americké půdě je tato komprese
k dispozici pouze u komerčních aplikací nebo u aplikací vyvinutých mimo USA. Volně šiřitelné programy
v USA se musí spokojit s dekompresí. Možnost zapouzdřit JPEG soubor do souboru TIFF je zajímavá
velikostí výsledného souboru. Chceme-li mít jistotu, že tam, kam svůj TIFF pošleme, ho otevřou, moc
možností nezbývá (jistě nekomprimovaný, možná LZW a Packbits).
Podobná situace je u barevných prostorů a bitových hloubek. Barevný prostor CMYK zvládají aplikace
pro předtiskovou přípravu, některé z ostatních jej možná zobrazí. Se soubory v kolorimetrických barevných
prostorech je to ještě horší, zvlášť u vyšších bitových hloubek. V praxi je k přenosu dat použitelný nanejvýš
osmibitový CIE L*a*b*. Více než osmibitová data většina aplikací sice otevře, ale méně z nich je dokáže
též zapsat.
17.2
JPEG
Na rozdíl od formátu TIFF byl JPEG navrhován pouze jako standardní ztrátové kompresní schéma, určené zvlášť na fotografie. Specifikace ISO dokonce ani neobsahovala doporučený formát souboru. To, co
dnes známe pod příponou .jpg, je formát zvaný JFIF. Formát měl dvě odlišné verze – v5 a v6. Dnes se
názvem JPEG označuje jen v6, pro v5 se používá označení OJPEG. JPEG dosahuje kompresních poměrů
u bezztrátové komprese nedosažitelných.
JPEG je navržen bez použití patentovaných technologií.
JPEG běžně ukládá obrázky ve speciálním barevném schématu – YCbCr (jasová informace, světlost
barvy, chrominance, v případě CMYK obrázků pak používá schéma Adobe YCCK), jednoduše převoditelném na RGB (resp. CMYK). Kanály Y a Cb se většinou ukládají v plném rozlišení, zatímco kanál Cr
se z důvodu úspory často podvzorkovává (přepočítává na menší rozlišení, běžně v poměru 1 : 2 × 1 : 2;
některé starší aplikace uměly pouze 1 : 2 × 1 : 1). Cenou za to je zhoršení kvality ostrých barevných přechodů. Na data se může dále uplatnit prokládání, kdy je obraz uložen jako sekvence po sobě jsoucích částí
s postupně se zvyšujícím rozlišením. Tímto postupem zpracovanému obrázku se říká progresivní JPEG
a hodí se zejména pro velké obrázky na web – obrázky pak v prohlížeči nenabíhají odshora, ale postupně
se „projasňujíÿ.
Na takto předzpracovaná data se používá speciální kódovací mechanismus Discrete Cosine Transform
(DCT), dále následuje Huffmannovo kódování (nebo aritmetické entropické kódování), a tato data se pak
ukládají do souboru.
Pro neobrazová data formát JPEG vyhradil pouze 17 polí – COM pro komentář a APP0 až APP15 pro
speciální účely. APP0 obsahuje informaci o barevném prostoru a rozlišení, APP14 Adobe marker, APP8
pak data standardu SPIFF.
17.2. JPEG
99
Kvalitu obrázku nejvíce ovlivňuje základní koeficient kompresoru – kvalita. Její interpretace se v jednotlivých aplikacích liší, nejběžnější je škála 0 %–100 %, kde vyšší číslo znamená vyšší kvalitu. Implicitní
kvalita bývá 75 %, někdy i 80 %. Ještě vyšší kvalitu lze bez obav použít i na zvětšeniny a fotografie obsahující i písmo (zvlášť zakážeme-li podvzorkování barevného kanálu). Nad 95 již kvalita viditelně neroste,
zato prudce roste velikost souboru. Ani kvalita 100 % ovšem neznamená bezztrátovou kompresi! Stále zde
existuje ztráta při výpočtu koeficientů, případně i z podvzorkování.
Pro nižší kvalitu se naopak rozhodneme u náhledů a miniatur, případně u obrázků s předimenzovaným
rozlišením. Prakticky použitelné jsou hodnoty zhruba od 25 %. Při nízké kvalitě komprese můžeme úspěšně
použít další volbu kompresoru – vyhlazení před kompresí – která za cenu ztráty detailů nabídne vizuálně
lepší výsledek.
17.2.1
Opakovaná komprese JPEG
Obecně rozšířenou pověrou je, že dekomprese a opětná komprese obrázku ve formátu JPEG se stejným
nastavením vede ke ztrátě kvality. Není to pravda – k veškeré ztrátě dochází pouze při první kompresi a při
dalších kompresích již ke ztrátě nedochází, s výjimkou pixelů na okraji obrázku. Existuje i matematický
důkaz tohoto tvrzení, ale odkaz na něj jsem bohužel ztratil. Experimentálně jsem si to alespoň ověřil
na stonásobné rekompresi.
V případě, že obrázek mezi jednotlivými kompresemi upravujeme, situace již tak příznivá není a ke ztrátě
kvality dochází.
100
KAPITOLA 17. BITMAPOVÉ FORMÁTY TIFF A JPEG
Kapitola 18
Další bitmapové formáty
Dnes se podíváme na další bitmapové formáty – GIF, PNG, JNG, MNG, BMP, ICO a JBIG. Povíme si něco
o možnostech úspory místa na disku volbou správného formátu a srovnáme kvalitu jednotlivých kompresí
na typických příkladech.
Pokud připravujeme data pro vystavení na WWW, výběr formátu se zužuje. Kromě formátu JPEG lze
zaručit nejvýše podporu formátu GIF. U novějších prohlížečů připadá v úvahu i nástupce GIFu, formát
PNG. Podpora animovaného PNG, formátu MNG, je zatím v plenkách.
18.1
GIF
Podobně jako jiné formáty, i GIF prošel vývojem. Dnešní verze zvaná GIF89a nahradila starší verzi GIF87a.
Podporuje pouze 256 barev, ale zato podporuje průhlednost a může obsahovat více vrstev, které lze interpretovat jako animace. Při vzniku WWW se vedle JPEGu stal hlavním a dlouhou dobu i jediným
grafickým formátem s alespoň malou podporou pohybu. Protože GIF podporuje pouze kompresi LZW,
dostal se do problémů, když proti ní firma Unisys zahájila své patentové tažení (nutno ovšem podotknout,
že z licenčních poplatků ani jeden z trojice Lempel –Ziv –Welch nic nemá, neboť patentovaná je jen drobná
úprava při spojení jejich metod).
Co GIF nabízí? Základní strukturou je popis logické obrazovky, jednotlivé popisy obrázků a jednotlivá
datová pole. Do souboru lze uložit osmibitová grafická data a palety. Jedna z barev palety může být
průhledná. Dalšími údaji jsou souřadnice levého horního rohu, časový posun při animaci a dispozice (údaj,
zda předchozí úsek animace bude nahrazen nebo připojen). Tyto údaje mohou být vzhledem k jednotlivé
vrstvě globální nebo lokální.
Z neobrazových informací může GIF obsahovat rozšíření (kromě grafického rozšíření je k dispozici
komentář, textové a aplikační rozšíření). Mimoto je uložen použitý poměr stran pixelu.
Obdobou progresivního ukládání dat JPEG je prokládaný GIF. Stejný algoritmus více průchodů se stále
hustším výběrem podvzorku je použit na celé řady pixelů.
18.2
PNG
PNG byl navržen jako přenositelný formát pro síť, bez použití patentů. Měl nahradit stávající GIF. PNG je
bezztrátový a ke kompresi dat používá speciální schéma, zakončené známou kompresí ZIP/Deflate. Kromě
toho, že není patentována, komprimuje grafická data většinou lépe než GIF.
Podporuje většinu běžných barevných prostorů, včetně barevných profilů a kolorimetrické specifikace.
U indexovaných palet umožňuje přiřadit jednotlivým barvám různou důležitost.
101
102
KAPITOLA 18. DALŠÍ BITMAPOVÉ FORMÁTY
Při tvorbě průhledných obrázků máme kromě průhledné barvy z palety k dispozici též podporu pro alfa
kanál, a tedy i poloprůhlednost.
Soubor je sestaven z úseků s daty. K základním neobrazovým datům patří: hodnota gama korekce,
poloha vrstvy, rozlišení, čas a dva typy textových úseků. K tvorbě progresivních obrazových dat lze použít
prokládání Adam7. Úspory dat lze docílit vymazáním průhledných úseků.
18.2.1
MNG a JNG
Poměrně nové MNG a JNG v sobě kombinují možnosti PNG a JPEG, a vytvářejí tak nové formáty,
umožňující uložit více takových obrázků v jednom souboru a vytvořit z nich animace. K tomu přispívají
i různé možnosti kompozice vrstev.
Podpora je zatím dost slabá, i když projekt Mozilla tyto formáty již umí.
18.3
BMP a ICO
Tyto poměrně zastaralé formáty se staly neoficiálním „nativnímÿ formátem Windows a OS/2 (ve skutečnosti
se jedná o dva mírně odlišné formáty, oba známé pod názvem BMP). ICO je vlastně obálkou pro několik
BMP souborů a používá se na ikony. Podporují jednoduchou průhlednost. Důvod, proč se o nich zmiňuji
v souvislosti s UNIXem, je jednoduchý. Firma Microsoft při tvorbě ikon záložek svého Internet Exploreru
použila právě formát ICO. Od té doby, co tuto vlastnost „adoptovalaÿ většina webových prohlížečů, se stal
převod do formátu ICO zajímavým i v UNIXu. Po chvíli hledání se mi podařilo najít např. xpm2wico[27],
který to zvládne bez problémů.
18.4
JBIG
Přes nespornou zajímavost se tento bezztrátový formát pro černobílou čárovou grafiku nijak výrazně nerozšířil. Umožňuje ukládat černobílou grafiku ve vysokých kompresních poměrech.
18.5
EPS
Přesto, že EPS je přednostně formátem pro vektorovou grafiku, je třeba si ho připomenout též jako formát pro bitmapovou grafiku. Hlavním důvodem jeho nenahraditelnosti jsou ořezové cesty. PostScript se
špatně vyrovnává s typickou bitmapovou průhledností, a tak bývá v EPS souborech řešena právě ořezovými cestami. Jde vlastně o vektorové obrazce – cesty, které ohraničují neprůhlednou oblast. A jediným
přenositelným formátem, jehož součástí může být ořezová cesta, je právě EPS.
18.6
Speciální formáty
Mezi neobvyklé formáty obrázků patří např. XPM, ve kterém jsou obrazová data uložena tak, že tvoří
zároveň platný zdrojový kód pro C. Ve světě UNIXu se jistě setkáte s formáty PNM (PBM, PGM, PPM),
jednoduchými formáty pro přenos obrázků, přenosovým formátem ImageMagicku MIFF či nativním formátem GIMPu – XCF – a jeho obdobou s použitím komprese JPEG – XJT. Všechny však mají omezené
pole působnosti a snadno se může stát, že je majitel ne-UNIXové platformy neotevře.
18.7. KOMPRESE A VELIKOST SOUBORU
18.7
103
Komprese a velikost souboru
Otázkou, která zajímá každého, kdo častěji pracuje s obrázky, je výsledná velikost souboru. Nelze však
dělat ukvapené závěry o kvalitě formátů, neboť každý z nich má jiné určení.
Zhruba 60 % velikosti souboru lze někdy ušetřit obratným použitím indexované palety namísto plných
barev, aniž by se to výrazně projevilo na kvalitě (např. u log, náhledů apod.). Jinou možností je občas
použít nekomprimovarý obrázek, a ten zabalit běžným archivačním programem. U indexovaných obrázků
lze použít optimalizátorů pořadí barev v paletě.
Pro náš test jsem vybral několik typických obrázků – ručně psaný fax v nízké kvalitě, digitálně vytvořený fax v kvalitě Fine, černobílou kresbu v čárové grafice, barevnou fotografii, černobílou verzi téže
fotografie a digitální barevnou grafiku. Čísla udávají poměr k velikosti nekomprimovaného obrázku v procentech. U ztrátových kompresí značí zelená barva nepatrnou ztrátu kvality, žlutá přijatelnou a červená
nepřijatelnou. Pro zajímavost jsem u indexovaného PNG zvolil převod bez rozkladu, zatímco u GIF FloydSteinbergův rozklad.
písmo
bez komprese
TIFF LZW
GIF
TIFF Packbits
TIFF Deflate
CCITT FAX G3
CCITT FAX G3-2D
CCITT FAX G4
JBIG
PNG
PNG indexovaný
JPEG Q30
JPEG Q60
JPEG Q80
JPEG Q95
100,0
10,8
11,8
17,6
10,8
9,8
8,8
7,1
5,9
—
10,4
45,4
63,9
81,4
115,1
fax
100,0
21,9
24,1
29,7
18,4
21,1
15,9
13,4
11,3
—
16,9
86,5
122,1
155,4
220,4
kresba
čb foto
b. foto
grafika
100,0
22,5
22,3
40,8
19,7
23,1
12,3
8,5
6,1
—
17,8
68,1
98,9
127,6
183,9
100,0
87,1
86,0
100,5
74,7
—
—
—
—
48,7
—
4,2
8,3
15,2
22,4
100,0
93,5
22,9
100,7
75,5
—
—
—
—
43,2
20,0
1,5
3,0
5,6
8,4
100,0
19,1
4,9
33,5
11,3
—
—
—
—
4,8
1,9
2,7
3,8
5,1
8,2
Tabulka 18.1: Komprese a velikost souboru
JPEG je jasným favoritem pro fotografie, ovšem na čárové grafice zcela selhává. Tam naopak bodují
JBIG a faxové komprese. U digitální grafiky si nejlépe vede PNG. Pro bezztrátovou kompresi fotografií se
osvědčily nejlépe PNG a komprese Deflate. Barevné JPEGy jsou jen o několik desítek procent větší než
stejné černobílé JPEGy. Použití rozkladu při převodu na indexované barvy dává lepší výsledky za cenu
horšího kompresního poměru.
104
KAPITOLA 18. DALŠÍ BITMAPOVÉ FORMÁTY
Kapitola 19
Malinová nebo čokoládová?
Touto kapitolou se začneme seznamovat se zajímavými možnostmi použití běžných funkcí GIMPu. Změna
barvy je oblíbený trik na obalech mnoha výrobků. Namísto fotografování malinových, jahodových, mátových
či čokoládových bonbonů (sušenek, jogurtů, ponožek či čehokoliv jiného) fotograf udělá jedinou sérii obrázků
s pečlivě vybranou barvou výrobku či náplně. Ve studiu z těchto obrázků vykouzlí třeba deset různých obalů.
V této kapitole si ukážeme, jak změnit barvu jednoho objektu na obrázku, aniž by se změnilo okolí.
K úpravě barevného podání vede několik cest:
Máme-li štěstí, můžeme použít nejrychlejší metodu – deformaci barevného prostoru. Na následující
fotografii z Botanické zahrady UK vidíme květy růžové barvy. Otevřeme si dialog „Obrázek → Barvy →
Odstín–Sytostÿ a zkoušíme změnu barevnosti pro jednotlivé sextanty. Máme štěstí – v purpurovém sextantu
se nacházejí pouze květy a nic jiného. Trochu si pohrajeme s nastavením – a květy by nepoznal ani pan
Větvička . . . A jen oko zkušeného grafika rozezná, že s obrázkem není něco v pořádku.
Obrázek 19.1: Dialogové okno
Obrázek 19.2: Původní fotografie
Původní fotografie.
Obrázek 19.3: Přebarvená fotografie
A po barevné změně.
Stejně jednoduché je přebarvit . . . třeba Tuxe. A mohli bychom mít logo Linuxu pro i-Mac.
105
106
KAPITOLA 19. MALINOVÁ NEBO ČOKOLÁDOVÁ?
Obrázek 19.4: Dialogové okno
Obrázek 19.5: Původní obrázek
Obrázek 19.6: Přebarvený obrázek
Ne vždy je přebarvení tak jednoduché. Na následujícím obrázku máme dva plyšové pejsky. Předpokládejme, že chceme Fidátku přebarvit hlavičku, ouška a náprsenku na zeleno, ale Fidík musí zůstat růžový. Při
pokusu použít stejnou metodu jako u předchozích obrázků však zjistíme, že ve stejném barevném sextantu
je též podložka. Musíme vymyslet něco jiného . . . Jednou z možností je úprava barev před vlastní deformací. Pro náš obrázek jsme zvolili „Obrázek → Barvy → Vyvážení barevÿ. Poté jsme použili nám již známé
„Obrázek → Barvy → Odstín–Sytostÿ. Nakonec vrátíme vyvážení barev zpět. Bohužel vyvážení barev není
jednoduše vratná operace, a tak budou výsledné barvy mírně odlišné. Na obrázku jsem úmyslně ponechal
chyby, které při tomto postupu vznikly – zelenkavý stín a červené zbytky na špičce pravého ouška.
Obrázek 19.7: Dialogové okno
Můžeme také použít „ručníÿ práci: Otevřeme si dialog vrstev a vytvoříme si novou průhlednou vrstvu.
Tu přepneme do režimu „Barvaÿ a opatrně vybarvujeme. Jaký nástroj na vybarvení použijeme, je na nás.
Můžeme kreslit štětcem s vhodnou stopou (a přetažené čáry mazat gumou), použít magický výběr, inteligentní nůžky nebo ořezovou cestu. Mohli bychom též postupovat mnohem jednodušeji přepnutím štětce
do režimu „Barvaÿ, byli bychom tím však připraveni o možnost kreslit na více tahů a provádět opravy.
Další možností přebarvení je záměna barevných výtažků. Ta ale mění podání celého obrázku: „Obrázek
→ Režim → Dekompoziceÿ a hned nato „Obrázek → Režim → Kompoziceÿ. V dialogu pak úmyslně
zaměníme kanály. U našich pejsků není sama o sobě použitelná, ale byla by vhodným řešením například
pro fotografii na šedém pozadí.
107
Obrázek 19.8: Dialogové okno
Obrázek 19.9: Dialogové okno
V GIMPu existuje i filtr pro záměnu barev. Výsledky ovšem nejsou zdaleka tak dobré, jako u výše
uvedených metod.
U mnoha výrobků je těmito postupy upravován nejenom obal, ale i obsah. Jako příklad poslouží tavené
sýry nejmenovaného výrobce – „tavený eidamÿ a „tavený paprikový sýrÿ – po přečtení jejich složení zjistíte,
že jediné, v čem se liší, je barvivo E160a (karoten) v „paprikovéÿ verzi. Označení „tavený sýr s paprikovým
vzhledemÿ – by ale zákazníky tolik nelákalo.
108
KAPITOLA 19. MALINOVÁ NEBO ČOKOLÁDOVÁ?
Obrázek 19.10: Původní fotografie
Původní obrázek.
Obrázek 19.11: Krok 1
Mezikrok po „rozladěníÿ barev.
Obrázek 19.12: Krok 2
Mezikrok po vlastní barevné změně.
Obrázek 19.13: Fotografie po úpravě
A výsledný obrázek.
109
Obrázek 19.14: Původní fotografie
Výřez původní fotografie.
Obrázek 19.15: Zčásti přebarvená fotografie
A přebarvené ouško.
Obrázek 19.16: Dialogové okno
Obrázek 19.17: Původní fotografie
Zopakujeme si původní fotografii.
Obrázek 19.18: Po záměně komponent
A takto vypadá po přehození červené a zelené
složky.
110
KAPITOLA 19. MALINOVÁ NEBO ČOKOLÁDOVÁ?
Obrázek 19.19: Dialog záměny
Záměna barev nedává takové výsledky, jaké bychom čekali.
Kapitola 20
Všestranné razítko
Když jsem poprvé v životě vyzkoušel grafický editor, razítko mě nijak nenadchlo. Sotva jsem si dovedl
představit, k čemu by se dalo použít. Teprve později jsem pochopil, že jde o jeden z nejmocnějších nástrojů.
Opravy škrábanců, retuše, odstranění částí obrázku představují jen malý díl z toho, co lze s razítkem dělat.
Jako ukázku práce s Razítkem si necháme zmizet vyšehradský kostel . . .
S Razítkem jsme se již setkali v kapitole 5 při retušování smetí. Bylo to na tomto obrázku:
Obrázek 20.1: Ukázka retuše razítkem
Základní princip práce s razítkem je vždy stejný – na obrázku poblíž místa, které chceme překrýt,
vybereme vhodnou zdrojovou oblast (přidržíme Control a klikneme), stopu, která určí velikost přenášené
oblasti, a její kopií přepíšeme nežádoucí obsah. Proto se také Razítko v angličtině nazývá Clone (klon – to
však v češtině nezní tak pěkně, proto jsem při překladu GIMPu zvolil již zavedené razítko).
Síla razítka spočívá právě v možnosti vytvořit „záplatuÿ přímo z části obrázku. Ta pak na obrázku
nepůsobí rušivě.
Razítko umožňuje kopírovat z obrázku (pro retuš se používá tento režim) a ze vzorku. Může též kopírovat
z jedné vrstvy do druhé. Má tři režimy – nesledující, sledující a registrující. Zatímco v nesledujícím režimu se
zdrojová oblast nabírá vždy v určeném bodě, ve sledujícím režimu se v tomto bodě nabere zdroj pouze pro
první tah. Pro další tahy pak bude zachován vzniklý posun mezi zdrojovým a cílovým bodem. Registrující
režim je pak speciální režim, který nabírá vždy v místě, kde zrovna kreslíme. To má smysl, pouze když
kopírujeme z jedné vrstvy do druhé. Stopu razítka lze samozřejmě používat ve všech režimech.
Nesledující režim využijeme tehdy, je-li použitelná zdrojová oblast malá a potřebujeme jí pokrýt oblast
poměrně velkou. Sledující pak využijeme u členitějších obrázků.
Nejjednodušší situace je s málo členitou překrývanou oblastí. V takovém případě může nežádoucí plocha
zmizet jediným tahem. V praxi jsou však běžnější členité předlohy. Zde je třeba postupně vybírat více
zdrojových vzorků, čímž zabráníme viditelnému opakování motivu (pokud to naopak není účelem).
Nejkomplikovanější situace nastává, máme-li pracovat na jakémkoliv jasovém či barevném přechodu. To
značně zužuje oblast, ze které lze vybrat zdrojový vzorek, na úzký pás stejně tmavých či stejně barevných
ploch. Pokud v tomto pásu nenajdeme vhodné místo, nezbývá než zvolit složitější cestu.
111
112
KAPITOLA 20. VŠESTRANNÉ RAZÍTKO
Jednou z těchto cest jsou záplatové vrstvy. Pomocí nesledujícího razítka si vytvoříme dostatečně velkou
oblast (např. ze světlejší části). Vrstvu zduplikujeme a ztmavíme (nebo vytvoříme oblast z tmavší části),
k jedné z vrstev přidáme masku a metodou pokusů v ní vytvoříme přechodem nejvhodnější prolínání. Pak
tyto vrstvy spojíme a ze vzniklé můžeme registrujícím razítkem, maskou nebo gumou překrývat.
20.1
Ukázky
Na první ukázce vidíme oltářní obraz. Z fotografie bylo třeba odstranit závěsnou šňůru lustru. Jediným
použitým nástrojem bylo razítko (pominu-li závěrečné doostření).
Obrázek 20.2: Původní obrázek
Obrázek 20.3: Obrázek po retuši závěsu
(obrázek je z publikace Poutní místo Svatá Dobrotivá, Onyx, 1999)
Použití Razítka umožňuje vytvářet působivé efekty. Na prvním obrázku vidíme fotografii kostela sv.
Petra a Pavla na Vyšehradě. Pokusíme se digitálně provést trik velkých kouzelníků a necháme jej speciálně
pro čtenáře Roota zmizet.
Obrázek 20.4: Původní obrázek
Po prozkoumání struktury mraků je rozhodnutí pro sledující razítko jako základní nástroj jednoznačné.
Po prvním tahu – obrázek 20.5.
Ještě několik tahů a za pár minut je hrubá práce hotová – obrázek 20.6.
Cesta k dokonalé iluzi je však ještě dlouhá – dotvarovat mraky, aby působily věrohodně, a razítkem
s jemnou stopou dočistit obraz těsně nad vrcholky stromů. Protože se nevyhneme poškození korun stromů,
je třeba si vybrat jiná místa obrázku s podobným průběhem horizontu a odtud přenést linii stromů (zdálky
20.1. UKÁZKY
113
Obrázek 20.5: První tah
Obrázek 20.6: Hrubá práce
fotografované listoví stromů naštěstí tato retuš příliš nenaruší). Nakonec položíme obě fotografie na sebe
a registrujícím razítkem vrátíme pasáže, které jsme poškodili zbytečně. Následuje poslední retuš a za půl
hodiny jsme hotovi – obrázek 20.7.
Pokud chceme překvapit diváky, kteří počítačové grafice nerozumí, můžeme si první a poslední obrázek umístit do dvou vrstev a pouhým potažením šoupátka s průhledností nechat kostel zmizet v efektní
prolínačce – obrázek 20.8.
114
KAPITOLA 20. VŠESTRANNÉ RAZÍTKO
Obrázek 20.7: Hotová retuš
Obrázek 20.8: Prolínačka
Kapitola 21
Barevné úpravy obrázků
Obrázek často barevně neodpovídá skutečnosti a je třeba provést jeho korekci. Musíme barvy zpětně upravit
tak, abychom dostali výsledek co nejvíce odpovídající předloze. Běžná korekce barev, prováděná pouhým
pohledem, bývá v domácích podmínkách jedinou cestou k nápravě.
V této kapitole se budeme zabývat barevnými úpravami, jejichž cílem je, aby fotografie dosáhla co
nejvěrnějších barev.
Dříve, než přejdeme na vědecké metody kalibrace, podíváme se na možnosti intuitivního nastavení.
Ruční metody mají mnohem méně stupňů volnosti, ale v praxi to nevadí, neboť složitější nástroj by již
člověk neovládl.
Pokud máme dobře nastavený monitor, lze tyto metody s úspěchem použít i tehdy, když nemáme
k dispozici kalibrační nástroje. Máme-li veškeré kalibrační vybavení, musíme se k těmto postupům uchýlit,
není-li rozladěný obrázek s čím porovnat a konečné nastavení barev tak záleží jen na barevném citu.
Různé nástroje mají různé počty nastavitelných hodnot. Čím více jich je, tím je nástroj univerzálnější,
ale také náročnější na nastavení. Základní nástroje, které máme v GIMPu k dispozici v menu „Obrázek →
Barvyÿ, lze rozdělit do několika kategorií:
21.1
Nástroje, jež pracují se všemi komponentami najednou
Tyto nástroje neumožňují změny v barevném podání obrázku. Na dojmu z obrázku se však podílí též jasová
informace.
Jas–kontrast – umožňuje nastavit dvě hodnoty
Úrovně, jasový kanál – umožňuje nastavit pět hodnot
Křivky, jasový kanál – umožňuje nastavit spojitě průběh jasové informace
21.2
Nástroje, jež pracují s každou komponentou zvlášť
Tyto nástroje umožňují korigovat průběh jednotlivých barev, abychom dosáhli správného barevného podání.
Vyvážení barev – umožňuje nastavit devět hodnot barevného podání
Úrovně, barevné kanály – umožňuje nastavit 3 × 5 hodnot
Křivky, barevné kanály – umožňuje nastavit spojitě průběh jednotlivých barev
115
116
21.3
KAPITOLA 21. BAREVNÉ ÚPRAVY OBRÁZKŮ
Nástroje, jež pracují s barvami
Pokud pracujeme s každou komponentou zvlášť, není možné popsat takové vlastnosti, jako je sytost či
světlost barvy. Na jejich změnu proto editace křivek nestačí a jsou potřeba jiné nástroje.
Odstín–sytost – umožňuje ovlivňovat odstín, světlost a sytost, a to po jednotlivých barevných sextantech,
nebo vcelku, tedy celkem (6 + 1) × 3 hodnot
Kromě uvedených funkcí má GIMP ještě mnoho dalších, z nichž některé jsou pro práci s barvami ještě
silnější než Odstín–sytost – kombinované nástroje „Obrázek → Barvy → Sada filtrůÿ a „Obrázek → Barvy
→ Rotace barevné mapyÿ, další najdeme v menu „Obrázek → Barvy → Autoÿ nebo v menu „Filtry →
Barvyÿ.
21.4
Intuitivní barevné úpravy
Pokud nemáme kalibrační nástroje nebo žádnou předlohu, jedinou cestou k úpravě barev je nastavení
„od okaÿ. Nejjednodušším nástrojem pro takovou korekci jsou Úrovně. Pět hodnot tohoto nástroje odpovídá
horním a dolním limitům vstupních a výstupních úrovní a úpravě gama. Na diagramu vidíme histogram
(rozložení barev podle jasu), podle kterého se můžeme orientovat. Pro dolní a horní limit vstupního rozsahu
platí následující empirické pravidlo: Obrázek má optimální kontrast, odřízne-li se z histogramu zhruba 1 %
extrémních hodnot. Opravu gama nastavujeme podle průběhu jasu, aby se dobře prokreslily stíny i světla.
O výběru rozsahu jsme se zmínili též v kapitole 4 (program XSane obsahuje podobný nástroj).
Korigujeme-li souběh tří barev, je vhodné přednostně korigovat modrý a červený kanál. Průběh zelené
barvy, na kterou je oko nejcitlivější, necháváme beze změny (můžeme místo toho korigovat jasový kanál).
Lze tak dosáhnou libovolné korekce a při posuzování barevnosti nám ubyde jeden stupeň volnosti (jasovou
informaci lze posuzovat odděleně).
Podobným nástrojem je i Vyvážení barev. Zde nastavujeme korekci pro světla, střední tóny a stíny.
Pomocí obou uvedených nástrojů dolaďujeme obrázky hlavně tehdy, upravujeme-li na obrázku jen několik
barev s rozdílným jasem, jejichž skutečnou barvu dokážeme odhadnout, nebo jen kontrast.
Maximum při zpracování každé komponenty zvlášť nabízejí Křivky. Rozhodneme se pro ně, dokážemeli na obrázku odhadnout více barev. Otevřeme si dialog křivek, nastavíme spojitou křivku a na obrázku
klikneme do barvy, kterou chceme nastavit. Na grafu se objeví svislá čára, která bude vodítkem pro korekci
této barvy. Nastavíme modrou a červenou hodnotu (případně i jas). To opakujeme pro všechny barvy,
dokud nejsme s barevným podáním spokojeni. Pro úpravu je vhodné si barvy seřadit podle jejich jasu.
Výbornou službu nám při barevné korekci nabízí neutrální šedá. Pro její opravu stačí nastavit hodnotu
červené a modré na stejnou úroveň, jakou má zelená. Můžeme si tak např. dokorigovat snímek z jasného
letního dne, aby stíny nebyly zbarveny do modra.
Sytost a světlost barvy je možné doladit jen nástroji ze třetí skupiny, ve které nástroje pracují s barvami
dohromady, nikoliv pouze s jednotlivými komponentami. Na rozdíl od předchozích kategorií však zde nemáme k dispozici univerzální nástroj pro tyto operace – byl by jím prakticky neovladatelný trojnásobný
trojrozměrný editor křivek. Tento nástroj by měl stejnou sílu, jakou má standardní barevná kalibrace.
21.5
Příklad
Vezměme si obrázek Vyšehradu z předchozí kapitoly. Prvním záchytným bodem budou mraky – měly by
být šedé, jsou však do červena až purpurova. Druhým bodem může být vozovka vpravo dole. Dalšími
nastavovanými barvami mohou být obloha a barva stromoví.
Projdeme jednotlivé barvy, nastavíme červenou a modrou podle svého názoru, výraznější nerovnosti
na křivce[147] zarovnáme. Zelený kanál necháváme beze změny (viz výše). Výsledek po korekci již není tak
výrazně načervenalý, jako byl původní obrázek:
V další kapitole si povíme více o serióznější metodě nastavování barev – barevné kalibraci.
21.5. PŘÍKLAD
117
Obrázek 21.1: Původní obrázek
Obrázek 21.2: Obrázek po korekci
Obrázek 21.3: Křivka červené
Obrázek 21.4: Křivka modré
118
KAPITOLA 21. BAREVNÉ ÚPRAVY OBRÁZKŮ
Kapitola 22
Úvod do teorie barev
Chceme-li pochopit, kde, proč a jak vzniká barevné zkreslení a jakými metodami jej korigovat, musíme se
ponořit hlouběji do fyziky a nahlédnout do teorie barev. Dnes se dozvíme o spektru, osvětlení, lidském oku
a jeho vztahu k barvám.
22.1
Spektrometrie
Jediným popisem, který téměř dokonale vystihuje barevnost objektu, je spektrogram. Jedná se vlastně
o informaci, nakolik pro danou barvu (přesněji vlnovou délku světla) daný objekt světlo vyzařuje či pohlcuje.
Jeho grafické znázornění se nazývá spektrum.
Existují dva typy spektra – spojité, na kterém se mohou nacházet absorbční čáry (úzké oblasti, ve kterých
světlo nepřichází), a čárové, kdy světlo přichází jenom v úzkých pásech vlnových délek. První druh spektra
nalezneme u tepelně vyzařujících těles. Absorbční čáry vznikají, jak název napovídá, pohlcením určitých
vlnových délek při průchodu světla plynem nebo jinou průhlednou hmotou. Čárové spektrum naopak vzniká
v horkých plynech a plazmatu. Bývá obvyklé, že na stejných vlnových délkách, kde nějaký plyn procházející
světlo pohlcuje, ho také sám vyzařuje.
Typický příklad spojitého spektra nám nabízí Slunce. Při průchodu fotosférou, koronou a atmosférou
Země ve spektru vznikají absorbční čáry. Dalším příkladem tepelného vyzařování je žárovka.
Obrázek 22.1: Spektrum Slunce s vyznačenými absorbčními čárami
c
Wabash
Instrument Corporation, 1961. Obrázek převzat z Web Syllabu Dept. Physics & Astronomy University of
Tennessee[19]: The Solar Spectrum.[20]
Čárové spektrum naproti tomu mají výbojky a zářivky. U těch se však výrobci snaží o co nejširší
spektrum vyzařovaných barev. Čárové spektrum se také objevuje u Slunce v posledních dvou sekundách
před a po úplném zatmění (protože pozorovatel již vidí pouze vyzařování plynů sluneční atmosféry).
Zvláštním druhem čárového spektra je monochromatické spektrum – takové spektrum obsahuje většinou
jedinou poměrně úzkou čáru. Takové spektrum mají LED diody a lasery.
119
120
22.2
KAPITOLA 22. ÚVOD DO TEORIE BAREV
Barevná teplota a tepelné vyzařování
Pod názvem tepelné vyzařování absolutně černého tělesa se skrývá známá skutečnost, že rozžhavená tělesa
vyzařují. Toto vyzařování je závislé pouze na teplotě a je zcela nezávislé na barvě a materiálu.
Tato spektra mají zásadní význam. Lze je popsat jediným údajem – teplotou vyzařujícího tělesa, tedy
barevnou teplotou (obyčejně se udává v Kelvinech). V určitém rozsahu barevných teplot (zhruba mezi
3 000 K a 25 000 K) vnímáme tato spektra jako bílé barvy.
22.3
Kolorimetrie
Lidské barevné vnímání je pouze tříbarevné, a tak jsou spektrometrické nástroje příliš komplikované pro
účely vnímání barev.
Protože spektrální citlivost zdravých lidských očí se u jednotlivců příliš neliší, je možné libovolný spektrogram převést jednoduchou matematickou operací (určitým integrálem součinu vyzařování a citlivosti
přes vlnovou délku) na trojbarevný systém.
K tomuto převodu je třeba znát průběh spektrální citlivosti lidského oka pro jednotlivé barvy. Vrcholy
citlivosti barvocitlivých čípků se nacházejí přibližně na 430 nm (fialová), 530 nm (modrozelená) a 560 nm
(žlutozelená). Vrchol vysoce citlivých, ale barvu nerozeznávajících tyčinek se nacházejí kolem 510 nm. Komise CIE[56] (Commission Internationale de l’Eclairage) stanovila vlnové délky základních barev odlišně:
780,0 nm (červená), 546,1 nm (zelená) a 435,8 nm (modrá). Je to proto, že takové barvy pokryjí mnohem
větší barevnou oblast.
Obrázek 22.2: Závislost citlivosti lidského oka v závislosti na vlnové délce.
c
2000,
2001 photo.net[118]. Obrázek převzat z článku Ed Scotta[159] Color Vision[119].
Pokud bychom si však mysleli, že lze postupovat i naopak – vjem každé barvy sestavit z těchto tří
standardních barev (RGB), mýlili bychom se. Křivky citlivosti se navzájem překrývají, a proto nelze mnoho
velmi čistých barev složit z barev základních. Zejména v oblasti modrozelených barev bychom potřebovali
výrazně záporné hodnoty červené komponenty. K témuž dochází slaběji i u purpurové a u žluté. V praxi
navíc nelze použít čisté základní barvy, a tak se problém nedosažitelnosti dále zesiluje.
Kromě toho jsou tři barvy pro barevnou informaci nadbytečné – lidské oko je totiž nevnímá jako tři
barevné komponenty, ale spíš jako jas a barevnou informaci, sestávající jen ze dvou komponent. Těmito
komponentami mohou být např. odstín a sytost, nebo jednoduše spočítané hodnoty X a Y (vynásobením
22.4. VZTAH MEZI ADITIVNÍMI A SUBTRAKTIVNÍMI SYSTÉMY
121
hodnot RGB vhodnou maticí a normalizací výsledných barevných hodnot X a Y vůči jasové komponentě Z).
Barevný systém XYZ je výpočetně nenáročný, vyhýbá se záporným hodnotám, barvu udává jen ve dvou
hodnotách a navíc i zčásti intuitivní – hodnoty X resp. Y vyjadřují „poměrnou červenostÿ resp. „poměrnou
ne-modrostÿ. Přes své zjevné nedostatky – zcela nefyziologicky zkresluje „vzdálenostÿ barev (a tedy není
vhodný pro ukládání obrazových dat v malých bitových hloubkách) a mnoho kombinací X a Y nedává
žádný smysl – se stal základním referenčním barevným prostorem a všechny ostatní se vztahují k němu
(stačí se podívat do popisu jazyka PostScript nebo do definice barevných profilů).
Nyní se můžeme vrátit k diagramu z kapitoly 2 a vysvětlit si jeho obsah.
Obrázek 22.3: Diagram CIE
Na osách jsou vyneseny hodnoty X a Y. Oblouk znázorňuje čisté barvy spektra, jeho tětiva pak nespektrální purpurové odstíny. Světlý trojúhelník uvnitř obsahuje dosažitelné barvy v jednom ze systémů
RGB (CIE REC 709). Jeho vrcholy znamenají základní barvy (jedná se o reálný barevný systém, a proto
se základní barvy nenacházejí na oblouku prakticky nedosažitelných dokonale čistých barev). Dosažitelná
oblast barev se nazývá gamut a obecně může záviset i na jasové složce.
Čára uprostřed znázorňuje barvy tepelného vyzařování, čísla na ní pak jednotlivé barevné teploty.
Černá oblast pak udává kombinace hodnot X a Y, které nemají smysl. Některé z nich však přesto mohou
být v jistém smyslu reálné – jedná se o halucinační barvy. Ty nejsou dosažitelné žádným myslitelným
osvětlením lidského oka. Lze je však vyvolat přímým drážděním zrakového nervu nebo mozkového centra
zraku. O jejich rozsahu a možnosti jejich vynesení do diagramu XY mi není nic známo . . .
22.4
Vztah mezi aditivními a subtraktivními systémy
V již zmíněné kapitole 2 jsme se seznámili s aditivním mícháním barev (jednotlivé komponenty jsou barevná světla a příspěvky se sčítají) a subtraktivním mícháním barev (jednotlivé komponenty jsou barviva
a příspěvky se odčítají).
Proto i základní barvy subtraktivního systému jsou jiné – azurová (která pohlcuje nejvíce červené),
nespektrální purpurová (která pohlcuje nejvíce zelené) a žlutá (která pohlcuje nejvíce modré).
Pokud bychom si gamut tohoto systému vynesli na výše uvedený diagram, jednalo by se trojúhelník,
jehož vrholy se nacházejí poblíž středů stran trojúhelníku gamutu pro RGB.
V obou systémech je ještě jeden zásadnější rozdíl – zatímco v aditivním systému má objekt absolutní
hodnotu své barvy pevně danou, v subtraktivním systému se mění s osvětlením. Je v něm však určena míra
pohlcení určitých barev.
122
KAPITOLA 22. ÚVOD DO TEORIE BAREV
Je zřejmé, že pro přepočet mezi těmito systémy je nutné zavést další veličinu – barevnost osvětlení. Ta je
udávána hodnotou bílého bodu aditivního systému (tzv. iluminant). U monitorů jí odpovídá barva, kterou
dostaneme při maximální hodnotě všech tří složek. Z praktických důvodů se monitory nastavují tak, aby
tato barva odpovídala některé z barevných teplot.
Pokud jsou bílé body dvou barevných systémů stejné (např. barevná teplota obrazovky a okolního
osvětlení), pak je převod jednoduchý. V ostatních případech je nutné provést korekci bílého bodu.
Lidské oko má schopnost přizpůsobit se v určitém rozsahu barvě převládajícího osvětlení (zvlášť pokud
odpovídá tepelnému vyzařování). Následkem toho se může naopak měnit barevný vjem z aditivního systému
– přestože obrazovka září stále stejně, v rozptýleném světle oblohy nám obraz připadá načervenalý, zatímco
v umělém osvětlení namodralý.
22.5
Další základní barvy?
Viděli jsme, že dosažitelné barvy jsou nejen prakticky, ale dokonce i teoreticky omezené na oblast zvanou
gamut. Jednou z možností jejího rozšíření je přidání dalších barev do systému. Nejznámější z nich je systém
subtraktivních tiskových barev Hexachrome od firmy Pantone[116], kde se ke standardním barvám přidává
oranžová a zelená. Jeho gamut na výše uvedeném diagramu vytvoří pětiúhelník.
22.6
Vhodné osvětlení aneb kdy kolorimetrie nestačí?
Zdálo by se, že kolorimetrie pojednává o barvách jaksi absolutně. Není tomu tak! Pokud nevhodně zkombinujeme osvětlení, které nám připadá bílé, ale ve skutečnosti se skládá z úzkých spektrálních čar (např.
světlo úsporných zářivek), a materiál, který má podobně ostrou spektrální charakteristiku, může se barevnost dramatickým způsobem změnit. Dobře to znají prodavačky textilu, výtvarníci a měli by to znát
i počítačoví grafici.
Podobně si můžeme představit dvě tmavé žluté – jedna odráží určité procento všech barev spektra vyjma
modré, zatímco druhá pohlcuje většinu spekra s výjimkou úzké spektrální oblasti kolem žluté. Za denního
světla budou obě barvy vypadat podobně. Ale při osvětlení monochromatickým červeným světlem bude
druhá výrazně tmavší.
Za vhodné lze považovat osvětlení s typickým tepelným spektrem a s nevýznamnými absorbčními čárami. Takové poskytují denní světlo, žárovky (zvláště tzv. přežhavené žárovky) a některé speciální výbojky.
Naproti tomu běžné výbojky a zářivky tento požadavek většinou nesplňují, jakkoliv bíle jejich světlo vypadá.
K práci s barvou nepatří!
Je tedy patrné, že v některých případech dává kolorimetrie zavádějící výsledky. Na to musíme myslet i při
barevné kalibraci. Na následujícím obrázku je skenerem UMAX Astra 1200S naskenovaná kalibrační tabulka
na fotopapíru Kodak Professional Digital. Druhý obrázek je upraven podle jiného barevného profilu tak,
jak by vypadal na fotopapíru Ektacolor. Připomínám, že na denním světle by byly obě kalibrační tabulky
dokonale stejné a že skener je kalibrován na správné podání neutrální šedé.
Z těchto obrázků jsem si učinil závěr, že skener nebo jeho výbojka má značně nestandardní spektrální
charakteristiku a barevná kalibrace není bez jejich korekce možná.
22.7
Další odkazy
• RIT Munsell Color Science Laboratory[57]
• stránky Charlese Poyntona[89]
• Colourware[61]
• Light Measurement Handbook[90]
22.7. DALŠÍ ODKAZY
123
Obrázek 22.4: Skutečná barevnost kalibrační tabulky.
Obrázek 22.5: Sken na materiálu Kodak Professional Obrázek 22.6: Simulovaný sken na materiálu EktaDigital.
color.
• Standardized Human Eye[158]
• Photo.net: Color Vision[119]
• Adobe Technical Guides: Basic Color Theory for the Desktop: The Physiology of Human Vision[47]
• Václav Skala: Světlo, barvy a barevné systémy v počítačové grafice, Academia, Praha 1993
124
KAPITOLA 22. ÚVOD DO TEORIE BAREV
Kapitola 23
Přesné barvy
S rostoucími nároky na věrnost barev nabývají na významu metody, kterými jí lze dosáhnout. Mezi nejvýznamnější patří barevné vzorníky a barevná kalibrace. Dnes se podíváme na rozdíl mezi kompozitními
a přímými barvami a dozvíme se o základu barevné kalibrace – barevném profilu.
23.1
Přímé a kompozitní barvy
V praxi se používají dva způsoby barevného tisku. Prvním z nich jsou přímé barvy. Při této technice tiskař
použije barvu z dané plechovky, případně barvu z několika plechovek v určeném poměru smíchá. Taková
barva by měla být vždy stejná a záleží jen na přesnosti výrobce barev, míchání tiskaře a vlastnostech
papíru, jaký výsledek dostaneme. Tato technika tisku má svého předchůdce v litografii.
Kompozitní barvy vznikají, vytiskneme-li několik barevných rastrů přes sebe. Ze všech možných kompozitních barev má mimořádné postavení čtveřice barev: azurová, purpurová, žlutá a černá – kombinace zvaná
CMYK. Naprostá většina běžných barevných tiskovin je složena právě z nich. První tři zajistí v rámci možností trojbarevného tisku co největší gamut (viz předchozí kapitola), černá zase stálý a přesný tisk šedých
odstínů.
23.2
Barevné vzorníky
Myšlenka barevných vzorníků k dosažení přesných barev je velmi stará, a tak není divu, že ji i počítačová
grafika přijala. Vzorníky tiskových barev se, podobně jako tiskové systémy samy, dělí na vzorníky přímých
barev a vzorníky kompozitních barev. Ukázky bývají většinou na několika druzích papíru (hlazených a nehlazených), někdy bývá uprostřed každé barvy otvor pro porovnání. Nejznámějším výrobcem (poměrně
drahých) vzorníků je firma Pantone[116].
Vzorníky přímých barev v podstatě popisují barevnou škálu výrobce barev, někdy včetně zlaté či stříbrné. Bývají v nich ukázky směsných barev s připojeným návodem pro tiskaře, kolik dílů z které plechovky
barev použije. Některé vzorníky zobrazují tyto barvy i při tisku z rastru. V některých je též uveden přibližný ekvivalent barvy v systému CMYK. Tisk přímými barvami zvolíme tehdy, bude-li v tiskovině několik
vybraných barev, jejichž přesnost je třeba dodržet. Pokud tiskovina neobsahuje více než tři barvy, bývá
takový tisk dokonce levnější než klasický CMYK.
Vzorníky kompozitních barev většinou popisují různé kombinace barev tištěných rastrem v systému
CMYK (nebo jiném barevném systému). Po takovém vzorníku sáhneme, když chceme vybrat určitou barvu
pro barevnou publikaci tištěnou standardní technologií CMYK.
Kompozitní barvy mají menší barevnou škálu než přímé barvy, zato však vystačíme s pouhou čtveřicí
barev. Tisk z rastru je bohužel citlivější k různým nepřesnostem při tisku (dávkování barvy, nepřesné
vyvolání kovolistu apod.).
125
126
23.3
KAPITOLA 23. PŘESNÉ BARVY
Fotografie
Pro přesný tisk fotografií již nestačí žádný vzorník a musíme podniknout zásadní krok, který zajistí jejich
přesnou reprodukci. Tím krokem je barevná kalibrace.
23.4
Barevná kalibrace
Název barevná kalibrace zahrnuje množství různých činností, jejichž společným účelem je co nejpřesnější
reprodukce barevných obrazů. V čem barevná kalibrace spočívá? Bez použití kalibrace každé ze zařízení,
kterými obraz prochází, do něj zanese jistou chybu. Tyto chyby se skládají a výsledkem je obraz odlišné
barevnosti. Pokud jsou zařízení alespoň trochu kvalitní, je zanesená chyba opakovatelná, a tedy i měřitelná.
Pokud bude na vstupu obraz známé barevnosti, můžeme změřit barevnost na výstupu. Získáme tím přibližný
průběh zkreslující funkce. V určité oblasti hodnot pak můžeme k této funkci vytvořit funkci převrácenou,
která nám ze získaných dat odvodí původní barevnost.
23.5
Barevný profil
Protože záznam této funkce bylo třeba standardizovat, aby jej mohly používat různé aplikace, vytvořilo
International Color Consortium[60] zvláštní formát souboru zvaný barevný profil. Obsahuje údaje o zařízení,
vstupním a výstupním barevném prostoru a hlavně vlastní převodní tabulku. Barevný profil může být
obousměrný, nebo jednosměrný, samostatný, nebo vestavný (ten lze vložit do souboru TIFF nebo PNG).
Vstupní a výstupní barevné prostory profilu bývají např. XYZ, L*a*b*, RGB, CMY, CMYK. Z důvodů
numerické přesnosti bývá převodní tabulka v profilu uložena nelineárně, většinou s gama hodnotou 3.
23.6
Druhy barevných profilů
Barevné profily můžeme rozdělovat podle toho, jaké zařízení popisují, na profily vstupních zařizení (skenerů,
kamer), profily výstupních zařízení (tiskáren či monitorů), nebo podle způsobu, jak byly získány, na individuální (jsou vyrobené pro daný kus zařízení v daném okamžiku a bývají nejpřesnější), typové (průměrné
vlastnosti pro určitý výrobek, často je lze koupit se zařízením nebo stáhnout z Internetu) a modelové
(matematicky simulující chování zařízení).
Zvláštní postavení mají profily pro převod barevných prostorů (neprovádějí žádnou korekci, pouze mají
jiný barevný prostor na vstupu a jiný na výstupu) a abstraktní (mohou provádět různé barevné operace).
23.7
Použití barevných profilů
Důležitou vlastností barevných profilů je jejich asociativita. Vyplývá z ní, že v technologickém řetězci
můžeme několik kroků prováděných po sobě přemostit a vytvořit pro ně jediný souhrnný profil.
Obrázek 23.1 (zdroj [129], textová verze [130]) ukazuje, jak vypadá nejjednodušší použití barevných
profilů.
Na místě skeneru může být jakékoliv vstupní zařízení nebo celý řetězec (fotoaparát → negativ → pozitiv
→ skener), podobně je tomu i na výstupu (osvitová jednotka → výroba kovolistu → tiskový proces → papír).
V místě odbočky může být obrázek popsaný v nezávislém barevném prostoru, ale nemusí při kalibraci
vystupovat přímo, ale pouze jako mezikrok výpočtu. V některých programech je jejich chováním toto schéma
poněkud zastřené, například proto, že profil skeneru se nastavuje na jiném místě než profily obrazovky
a tiskárny, nebo že není jasné, kdy se který převod provádí.
23.7. POUŽITÍ BAREVNÝCH PROFILŮ
127
Obrázek 23.1: Sskener → barevný profil skeneru → barevný profil tiskárny → tiskárna, mezi barevnými
profily skeneru a tiskárny datová odbočka barevný profil monitoru → náhled na obrazovce
Pro úpravu obrázků je ideální program, který umožňuje editovat v jiném barevném prostoru, než ve kterém zobrazuje (tedy RGB specifické pro daný monitor). Toto by měl umět budoucí GIMP-2.
Z obrázku můžeme odvodit, jak postupovat v případě, že takový program nemáme: Naskenovaný obrázek
převedeme pomocí profilu skeneru a profilu monitoru do barevného prostoru monitoru. V něm provedeme
požadované úpravy. Poté reverzním profilem monitoru převedeme obrázek zpět a přitom použijeme profil
tiskárny (abychom připravili obrázek pro tisk) nebo použijeme profil sRGB (pro vystavení na Internetu).
Tato metoda má ovšem dva problémy – prvním je dvojí převod, a tedy i dvojnásobná numerická nepřesnost,
druhým pak fakt, že se tím připravíme o barvy mimo gamut monitoru (např. čistou žlutou, azurovou,
purpurovou). První problém minimalizujeme použitím šestnáctibitové hloubky. Druhý problém lze obejít
použitím profilu speciálního RGB prostoru namísto profilu monitoru, např. Wide Gamut RGB. Ten má
ovšem opět dvě nevýhody – dále zvětší numerickou nepřesnost, takže šestnáctibitový editor bude prakticky
nutností. Druhou nevýhodou je fakt, že Wide Gamut RGB nedává na monitoru věrné výsledky. Pro retuš
s razítkem je však tento postup vhodným nouzovým řešením.
V další kapitole se zaměříme na konkrétní postupy při kalibraci jednotlivých zařízení.
128
KAPITOLA 23. PŘESNÉ BARVY
Kapitola 24
Barevná kalibrace vstupních zařízení
V této kapitole si přiblížíme kalibraci vstupních zařízení. Dozvíme se, jak se používá barevná kalibrační
tabulka, k čemu slouží denzitometr, jak lze kalibrovat digitální fotoaparát a jaká úskalí nás při tom mohou
čekat.
Při zpracování obrazu může vlivem nejrůznějších nepřesností dojít k rozladění barev. Ty je pak třeba
zpětně upravit, abychom dostali výsledek co nejvíce odpovídající předloze. Některé z těchto postupů jsou
realizovatelné i v domácích podmínkách v otevřeně kódových programech, jiné zůstávají výsadou dobře
vybavených studií či dokonce speciálních laboratoří. Několik málo otevřeně kódových aplikací pro barevnou
kalibraci jsme si popsali hned v kapitole 1.
24.1
Pomůcky pro barevnou kalibraci
24.1.1
Denzitometr
Základním zařízením pro tvorbu barevných profilů je denzitometr. V podstatě jde o měřidlo odraženého
nebo procházejícího světla. Na rozdíl od skeneru měří barevné vlastnosti větší oblasti, takže mu jednotlivé
kapičky inkoustu splynou do jediného vjemu, podobně jako v lidském oku. To, co z něj činí nedocenitelný
nástroj, je fakt, že spektrální charakteristika jeho světelného zdroje odpovídá standardnímu iluminantu
a citlivost měřících prvků odpovídá standardnímu lidskému oku. Díky tomu měří barevný vjem s vysokou
přesností. Denzitometr se používá při kalibraci tiskáren, osvitových jednotek, měření barevnosti tisku i při
výrobě kalibračních tabulek.
V domácí praxi se lze bez denzitometru zčásti obejít – pro vstupní zařízení ho zastupuje kalibrační
tabulka, pro výstupní zařízení ho v nouzi může zastoupit zkalibrovaný skener.
24.1.2
Barevná kalibrační tabulka
Barevná kalibrační tabulka je fotografie s přesně barevnými čtverečky. Některé obsahují i výraznou barevnou
fotografii pro intuitivní posouzení. Existuje několik standardů definujících, které barvy na tabulce budou.
Nejběžnější je IT8.7. Jejich rozložení, popsané souborem rozložení (layout) se může u různých tabulek mírně
lišit.
Tabulky jsou zcela nepostradatelné pro kalibraci jakéhokoliv vstupního zařízení. Proto se vyrábějí v různých velikostech, na papíře i průhledném filmu. Do zvláštní kategorie patří kalibrační tabulky pro negativní
film.
K tzv. kalibrované barevné tabulce náleží též kolorimetrická specifikace (target batch) – barevnou tabulku se nikdy nepodaří vyrobit zcela přesně, a proto specifikace uvádí skutečně naměřené barevné hodnoty dané tabulky. Tyto specifikační soubory se vydávají pro každou šarži tabulek zvlášť a je nutné použít
129
130
KAPITOLA 24. BAREVNÁ KALIBRACE VSTUPNÍCH ZAŘÍZENÍ
Obrázek 24.1: Barevná kalibrační tabulka
správnou verzi. Někteří výrobci dodávají hned několik korekčních tabulek – podle toho, zda pod tabulku
použijeme černou, nebo bílou podložku, případně měření pro různé iluminanty. Každý lepší software pro
barevnou kalibraci by měl s těmito opravami pracovat.
Při nákupu softwaru pro barevnou kalibraci nebo tabulek je třeba dávat pozor – některý software pracuje
pouze s určitým typem tabulek a některé tabulky naopak nemají širší podporu. Může se stát, že ke zdánlivě
levnému programu budete muset dokoupit velmi drahou tabulku.
Mezi významné výrobce barevných tabulek patří Eastman Kodak Company[96] a Gretag-Macbeth[82].
Cenově dostupné kalibrační tabulky vyrábí též Wolf Faust[42].
Jak u denzitometrů, tak u kalibračních tabulek se lze setkat i s jejich černobílými verzemi.
24.1.3
Zásadní požadavek kalibrace – vypnout veškerou automatiku
Pokud má mít barevná kalibrace nějaký efekt, musíme z řetězce vyloučit jakékoliv prvky, které mění své
parametry podle jednotlivých obrázků – např. skenovací program musí skenovat bez jakékoliv korekce
úrovní, u fotoaparátu musíme vypnout expoziční automatiku, stejně tak v digitální laboratoři, kde nám
připravují fotografie, nesmějí do procesu tvorby vkládat další korekce. Jakákoliv nečekaná změna barevnosti
může zcela znehodnotit proces kalibrace! Úpravy úrovní děláme pouze tehdy, když o to výslovně stojíme,
a tam, kde to nenaruší kalibraci (na obrazovce nebo v nezávislém barevném prostoru).
24.2
Co je to věrná reprodukce?
Poněkud překvapivá otázka. Ale při důkladnější analýze zjistíme, že je na místě. První odpověď, která nás
napadne, je: Vytištěný obrázek musí mít stejnou barvu jako originál. Taková odpověď ovšem pomíjí fakt,
že objekt na snímku vypadá jinak ve stínu a jinak v přímém světle. S podobnými problémy se setkáváme
i při posuzování na obrazovce.
Aby měl obrázek správný jas a kontrast, je potřeba vhodně vybrat bílý bod (nejsvětlejší zobrazitelné
místo), případně i černý bod (nejtmavší zobrazitelné místo). Pokud tedy nepřipravujeme zrovna reprodukci
obrazu nebo vzorník textilií, máme jistou libovůli. Ta se projevuje např. volbou expozice při fotografování.
24.3. VSTUPNÍ ZAŘÍZENÍ A JEJICH PROFILY
24.3
131
Vstupní zařízení a jejich profily
Jak jsme si již řekli, pro kalibraci jakéhokoliv vstupního zařízení potřebujeme barevnou kalibrační tabulku,
pomocí které změříme jeho přesnou charakteristiku a vytvoříme profil.
Pro práci se vstupními profily lze použít otevřeně kódový program SCARSE[148] od Andreje Frolova.
24.3.1
Skenery
Barevnou kalibrační tabulku naskenujeme ve vhodném rozlišení a získáme obrázek, na jehož základě kalibrační program vytvoří barevný profil.
Problémy: Spektrální charakteristika výbojky nebo čidel neodpovídá vždy té předepsané. Následkem je
pak barevný posun, závislý na skenovaném materiálu (tj. různé fotopapíry mají různé posuny), patrný zvlášť
v oblasti neutrální šedé (viz kapitola 22). Pokud je kalibrační tabulka barevně posunutá, zatímco pootevřená
dvířka skeneru v tmavé místnosti jsou dokonale šedá, lze téměř s jistotou usuzovat na tento problém.
Posun lze kompenzovat několika způsoby – buď si pořídíme kalibrační tabulku na všech materiálech, které
skenujeme (což může být velmi nákladné a problematické, zvlášť pro fotografie z minilabů), nebo vytvoříme
kompenzační profil (barevný posun lze popsat analyticky), nebo problém obejdeme vytvořením souhrnného
profilu film + skener (kalibrací dle vyfotografované tabulky). Barevný posun u kvalitních skenerů bývá
minimální.
Většina moderních skenerů automaticky provádí kalibraci bílé. Při ní se čidla zaměří na bílý pás vložený
uvnitř skeneru a nastaví svou citlivost podle naměřených hodnot. Tím se poměrně účinně předchází vzniku
pruhů. Pokud se bílý pás zapráší, spolehlivě nás zbaví možnosti naskenovat světlé odstíny (případně se tím
skener zcela vyřadí z provozu).
24.3.2
Fotoaparáty
Samotný fotoaparát asi kalibrovat nebudeme, ale zajímavá může být kalibrace filmového materiálu. Pokud
nafotografujeme standardní kalibrační tabulku při určitém osvětlení, můžeme snímek použít k sestavení
barevného profilu filmového materiálu.
U většiny kvalitních filmových materiálů je barevná chyba poměrně malá; záleží ovšem na zpracování
(v některých minilabech lze občas nabýt dojmu, že obsluha posuzuje obrázky pod zářivkovým světlem nebo
je barvoslepá).
Při kalibraci procesu negativ–pozitiv lze vytvořit kalibrační profil buď vcelku (na výsledné fotografii),
nebo kalibrovat negativní i pozitivní proces zvlášť (to většinou nemá podstatný význam, nepřipravujeme-li
modelové profily filmů). Podmínkou je, že kalibrační program negativní profily podporuje (v nouzi lze před
kalibrací provést jednoduchou inverzi).
Zajímavou možností je přímé skenování negativů. Protože však neexistuje nic takového, jako je „standardní negativÿ, je třeba kalibrovat pro každý druh filmu zvlášť. Neseženeme-li kalibrační film, musíme si
jej vyrobit fotografií kalibrační tabulky. Za optimální expozici považujeme takovou, při které je tabulka
nasnímána s co nejlepší linearitou.
Problémy: Kalibrační tabulku musíme fotografovat s velkou přesností. Stačí drobný odlesk, smetí na
filmu, ohnutí rohu tabulky a výsledek může být zavádějící (program oznámí, že některá z barev vůbec
nezapadá do barevné posloupnosti a většinou odmítne profil vytvořit). Podobně náročné je žárovkové
osvětlení. Bude-li při vzdálenosti 2 m od zdroje světla vzdálenější část tabulky o pouhé 2 cm dále, bude
naměřený rozdíl v osvětlení 2 %. To však nic není ve srovnání s běžným problémem levných objektivů –
čočkovým efektem. Dalším komplikací je expoziční automatika ve většině fotolaboratoří.
Chceme-li se vyhnout zkreslení, způsobenému zrnitostí materiálu, je třeba nafotografovat tabulku dostatečně velkou a použít kalibrační program, který při odebírání vzorků průměruje určitou oblast barevného
terčíku. V nouzi si lze vypomoci selektivním Gaussovým rozostřením.
132
KAPITOLA 24. BAREVNÁ KALIBRACE VSTUPNÍCH ZAŘÍZENÍ
Barevná charakteristika filmů bývá většinou upravena pro určité osvětlení (denní, nebo žárovkové).
Chceme-li dosáhnout dobrých výsledků, měli bychom to respektovat nebo použít předřadný filtr. Další
podmínkou je správná expozice (špatná expozice posune barvy do méně lineární oblasti více zatížené
šumem). Navíc se vlastnosti filmu mírně mění s expozičním časem (již během expozice dochází v emulzi
filmu k chemickým reakcím, které mění optické vlastnosti). Pokud bychom tedy chtěli být opravdu důslední,
museli bychom kalibrační tabulku fotografovat při každé změně expozičních podmínek.
Zajímavostí jsou chemické látky, které umožňují provádět cosi jako barevnou kalibraci na chemické
bázi. Tyto látky se souhrnně nazývají DIR (Developing Inhibition Reagent – látky brzdící vyvolávání).
Do filmového materiálu se běžně přidává přesné množství určitých látek, které reagují s některou z látek
uvolňovaných při vyvolávacím procesu a vytvářejí blokátor vyvolávání. Ten proniká do okolí (a ostatních
barevných vrstev) a tam potlačuje vyvolávání. Výsledkem jsou výraznější barvy a jasnější barevné přechody.
24.3.3
Čočkový efekt
Čočkový efekt (lenses effect) postihuje mnoho levných objektivů a způsobuje, že střed obrázku je podstatně světlejší než okraje. U některých objektivů s krátkou ohniskovou vzdáleností může rozdíl světelného toku činit až desítky procent! Efekt lze poměrně snadno matematicky vykompenzovat (umí to např.
SCARSE[148]), ale na fotografování kalibrační tabulky takovým objektivem raději zapomeňte (tedy pokud
nechcete fotografovat terčíky po jednom uprostřed políčka).
Obrázek 24.2: Fotografie s patrným čočkovým efektem
Obrázek 24.3: A po korekci.
Lepší objektivy většinou čočkový efekt kompenzují, ovšem za cenu snížení světelnosti. Jestli si chcete
ověřit, zda má váš fotoaparát také tento problém, stačí nafotografovat stejnoměrně osvětlenou neutrálně
šedou desku. Pokud bude fotografie v rozích tmavší, máte smůlu.
24.3.4
Digitální kamery a fotoaparáty
Při kalibraci digitálních kamer a fotoaparátů je situace obdobná jako u běžných fotoaparátů. Odpadají
však problémy se zrnitostí a smetím na filmu.
Kapitola 25
Kalibrace monitorů a barevný tisk
V této kapitole budeme pokračovat na téma kalibrace, tentokrát u výstupních zařízeních. Dozvíme se, jak
se tvoří barevná separace, k čemu slouží barevný nátisk, jak se kalibruje monitor a tiskárna.
25.1
Výstupní zařízení a jejich profily
U výstupních zařízení se často používají analytické profily. To proto, že zatímco u vstupního zařízení
korigujeme po cestě vzniklou nelinearitu, u výstupních zařízení bývá individuální odchylka zařízení mnohem
nižší, než odchylka vznikající z principu. Jako příklad uvedu míchání modré z azurového a purpurového
inkoustu. Podle jednoduchého modelu (viz kapitola 2) by modrá směs měla obsahovat 100% podíl obou
složek. Ve skutečnosti je taková směs purpurovo-fialová. Použijeme-li model bližší skutečnosti, zjistíme,
že modrou nelze namíchat. Pro přiblížení je třeba použít méně purpurové složky (zhruba 80 %). Tento
poměr silně závisí na vlastnostech inkoustu (a papíru) a hodnotě nárůstu tiskového bodu (viz kapitola 2).
Mnohem méně již závisí na nastavení tiskové hlavy.
Obrázek 25.1: Původní obrázek
25.1.1
Obrázek 25.2: Naivní převod
A takto by vypadal výsledný barevný tisk při
použití naivního převodu do prostoru CMY.
Monitory
Obrazovky monitorů se skládají z drobných bodů či linek ze speciálního materiálu, který začne při dopadu elektronového paprsku vyzařovat víceméně monochromatické světlo, jehož intenzita je přímo úměrná
množství elektronů. Elektrony vystřelují na stínítko tři elektronová děla téměř přesně úměrně 2,5. mocnině přivedeného napětí. Maska, kterou elektrony procházejí, zajistí, aby je každé z děl vystřelovalo pouze
133
134
KAPITOLA 25. KALIBRACE MONITORŮ A BAREVNÝ TISK
na luminofory určité barvy. Podle typu masky dělíme obrazovky na sytémy s invarovou maskou (děla jsou
uspořádána do trojúhelníku – proto též název Delta, maska je destička s milióny miniaturních otvorů,
luminofor se nanáší v bodech), systémy in-line (děla jsou vedle sebe, maska je destička s podlouhlými obdélníkovými výsečemi, luminofor se nanáší v pruzích) a systém Trinitron (děla jsou vedle sebe, maska je
soustava napnutých drátů, většinou na několika místech příčně přichycených, luminofor se nanáší v pruzích).
Přiblížíme-li k monitoru magnet, vychýlíme paprsky na nesprávný luminofor.
Obrazovky aktivních displejů též skládají světlo z drobných monochromatických bodů, pouze mocnina
závislosti světla na napětí se může lišit.
Z popisu je celkem zřejmé, že u monitorů se jednotlivé komponenty navzájem prakticky neovlivňují
a v lidském oku se jednoduše sčítají. Charakteristika monitoru je tedy poměrně přesně dána následujícími údaji: vlastnosti luminoforů (barevné souřadnice X a Y pro jednotlivé komponenty), nastavení bílého
bodu (většinou se volí některá z barevných teplot), jas a kontrast (to ovlivní nastavení absolutní hodnoty
jasu a černého bodu – zde je optimální nastavení poněkud nejednoznačné, proto se často upravuje gama
na hodnoty jiné než 2,5 – viz kapitola 2).
Z těchto údajů je možné vytvořit analytický barevný profil monitoru. To umí např. program SCARSE
[148] (ukázka viz kapitola 6).
Porovnáváme-li obrázek na monitoru se skutečným obrázkem, dojem se liší též podle barevné teploty
okolního světla. Proto je správné nastavení bílého bodu a okolního osvětlení tak důležité.
25.1.2
Kalibrační sondy
Pokud chceme monitor nastavit dokonale, můžeme si zakoupit kalibrační sondu. Jedná se o přesné měřidlo,
které se pomocí přísavky přichytí na obrazovku. Kalibrační program zobrazuje různé barevné kombinace
a sonda měří světelný tok obrazovky. Podle naměřených hodnot vytvoří software barevný profil a tímto
profilem upraví zobrazování.
Je třeba poznamenat, že nastavení kalibrační sondou platí pouze do okamžiku, než změníme nastavení
monitoru (např. jas nebo kontrast).
Zatím nevím o žádném ovladači pro kalibrační sondy v Linuxu.
25.1.3
Barevný tisk
Úprava barev před tiskem je holou nutností. Bez ní si nelze rozumný barevný tisk představit (viz ukázka
nahoře). I když nemusí jít zrovna o kalibraci, je nutné upravit hodnoty pro existující barviva a spočítat
hodnotu pro černou barvu (je-li použita). Tomuto procesu se říká barevná separace.
25.1.4
Analytická separace
Vytištěný obraz sestává, podobně jako u monitorů, z miniaturních bodů čistých barev, které se vpíjejí
do papíru poměrně stálým způsobem. To přímo vybízí k matematickému popisu tiskového procesu.
Existuje několik postupů pro analytický výpočet barevné separace. Všechny používají k popisu technologie nárůst tiskového bodu a kolorimetrickou charakteristiku použitých barviv.
Nárůst tiskového bodu určuje stupeň ztmavení barev oproti lineární charakteristice. Většinou se uvádí
v procentech. Hlazené papíry mají menší nárůst, nehlazené vyšší. Běžná hodnota bývá 22 %–27 %. Přesný
postup se mi na Internetu nepodařilo nalézt. Standardní funkce nárůstu tiskového bodu dává dobré výsledky
v rozsahu zhruba 10%–90% šedé, mimo tento rozsah se již od skutečnosti liší více. Ke kompenzaci se používá
omezení výstupního rozsahu (viz kapitola 4).
Kolorimetrická specifikace barev udává barevné souřadnice jednotlivých barev. Nejjednodušší systém
určuje barevné hodnoty pro jednotlivé inkousty C, M a Y. Předpokládá jejich míchání na čistě fyzikálním
principu a u černé zanedbává odchylku. Složitější systémy vyžadují též barevné hodnoty směsí CM, CY,
MY a CMY. Ještě komplexnější systémy pracují i s hodnotami pro černou, případně její směsi a pro barvu
podkladu.
25.1. VÝSTUPNÍ ZAŘÍZENÍ A JEJICH PROFILY
25.1.5
135
Úroveň černé a celkové krytí
Protože směs inkoustů CMY dává přinejlepším tmavě hnědou, a navíc jakákoliv změna dávkování zapřičiní
barevný posun, bývá součástí běžných barevných procesů také černá (K). V prvním kroku separace dostaneme hodnoty C, M a Y. Těm se přiřadí vhodná hodnota K a ze složek C, M a Y se určitá část odebere.
K tomu se používají dva algoritmy:
UCR (Under Color Removal): V této metodě zjistíme minimální hodnotu ze tří složek C, M a Y. Nejjednodušší možností je použití černé, pokud C, M a Y přesahují určitou hodnotu, a to až do zadaného
maximálního procenta. Metodu popisuje kniha PostScript Language Reference Manual[33].
GCR (Gray Component Removal): Určuje navíc úroveň použití černé a koeficient navrácení barev.
Dává lepší výsledky než UCR, zvlášť pro střední tóny. Přesný popis metody se mi nepodařilo zjistit.
Ať provedeme výběr černé jakoukoliv metodou, máme jistou libovůli v nastavení nejvyšší hodnoty pro
celkové krytí. To určuje souhrnné množství barvy, které může být použito. Teoretický rozsah je 200 %–400 %,
prakticky používané hodnoty bývají mezi 280 %–320 %.
25.1.6
Kalibrace barevného tisku
Běžné analytické modely nabízejí obstojný tisk s minimem prostředků. Chceme-li však přesné výsledky,
nezbývá než sáhnout po barevné kalibraci.
Dříve, než započneme s kalibrací, nastavíme vhodné použití černé. Poté vytiskneme kalibrační obrázek,
ten proměříme denzitometrem a hodnoty jednotlivých terčíků zapíšeme do kalibračního programu, který
podle měření sestaví barevný kalibrační profil.
Pokud nemáme k dispozici denzitometr, lze si v nouzi vypomoci zkalibrovaným skenerem. Je však třeba
počítat s nižší přesností (s výpočetními nepřesnostmi či s odlišností spektrální charakteristiky – viz kapitola
22).
Zatímco výpočet profilů vstupních zařízení je poměrně přímočarý, kalibrace tiskárny je pro software
mnohem náročnější. Musíme brát v úvahu mnohem více činitelů. Zřejmě proto dodnes neexistuje jediný
otevřeně kódový program pro tuto činnost.
25.1.7
Barevný nátisk
Pokud má být výsledkem naší práce ofsetový tisk, je třeba provést kontrolu barev ještě před započetím tisku.
To nelze ani na filmech (výtažky tvoří čtyři černobílé filmy), ani na kovolistu. Zjistit barevnou chybu až
v tiskovém stroji by bylo velmi drahé, a tak vznikl nátisk. Nátiskový systém je nastaven tak, aby simuloval
výsledky tiskového procesu.
Existují dva typy nátisků – levnější digitální nátisk (zhruba 300 Kč/A4) ověří náš výsledek z osvitových
souborů ještě před vlastním osvitem. Dražší chemický nátisk (kolem 600 Kč/A4) se vytváří z již nasvícených
filmů a je schopen odhalit i případné nesprávné osvícení nebo špatné nastavení rastrů (digitální nátisk totiž
rastry nemá). Nátisk pak slouží tiskárně jako barevný vzor, kterého se drží.
Máme-li extrémní nároky na kvalitu tisku, je nutné pamatovat na to, že nátisky bývají kalibrované podle
určité značky tiskových barev (nejčastěji Pantone). Použití tiskových barev jiné značky může způsobit malé
odlišnosti.
Některé nátiskové systémy umožňují vytvářet nátisky i z jiných komponent, než jsou běžné CMYK.
136
25.1.8
KAPITOLA 25. KALIBRACE MONITORŮ A BAREVNÝ TISK
Tisk
U tiskového stroje je možné do určité míry regulovat dávkování barvy, a tak udržet stálou barevnost tisku
a dokonce i dokorigovat chyby přípravy.
Pro nejnáročnější zákazníky se provádí kalibrace tisku. Postup je podobný jako u kalibrace počítačových
tiskáren. Provede se zkušební tisk (včetně dokončovacích úprav jako je lakování či laminování), ten putuje
zpět do studia a tam vyrobí barevný profil pro celý tiskový proces. Za dokonalé barvy platí zákazník
několikanásobným zvýšením ceny za přípravu (řádově tisíce Kč/A4).
25.1.9
Kalibrace osvitových jednotek a nátisků
Osvitovou jednotku a nátiskové zařízení je třeba pravidelně kalibrovat. Osvitová jednotka se kalibruje na dokonale lineární sytost rastrů (nastavení je vhodné opakovat pro různé frekvence rastrů). Nátiskové zařízení
se kalibruje na shodnost s referenčním barevným prostorem. Zákazník studia však nepřichází s těmito
profily do styku.
25.1.10
Jiné barevné systémy
Jak jsme si již řekli v kapitole 22, systém CMYK není jediným, který lze použít pro tisk. V poslední době
doznal většího rozšíření Hi-Fi systém Hexachrome od firmy Pantone[116]. Poměrně běžné je také obohacení
systému CMYK o jednu či více přímých barev – často se jedná o reklamní letáky či obaly na zboží s přidanou
„firemníÿ barvou.
Některé časopisy též experimentují s jinými barevnými kombinacemi – například náhradou černé komponenty systému CMYK tmavě fialovou. Pokud použijeme speciální software, který dokáže separovat i do
takových nestandardních prostorů, můžeme dosáhnout zajímavých efektů.
Kapitola 26
Doplnění pojmů
V předchozích kapitolách jsme se seznámili s mnoha novými pojmy, se kterými se často setkává uživatel
grafických editorů či kalibračních programů. Jejich vysvětlení však bylo věnováno méně prostoru, než by
bylo žádoucí, proto si dnes některé z nich doplníme.
Pořadí pojmů je zvoleno víceméně podle logického sledu. Čísla v závorkách udávají kapitoly, které se
tématem zabývaly.
26.1
Barevné prostory (kapitola 2, 6, 22, 23)
Barevný prostor je souřadný systém, ve kterém udáváme barvy. Vzhledem k omezením jednoduchých systémů vzniklo mnoho barevných prostorů s různým určením – XYZ (výpočetně jednoduchý referenční prostor
– při převodu z RGB se pouze násobí maticí), L*a*b* (referenční prostor s dobrou perceptuální uniformitou, při převodu se používají třetí mocniny a větvení), L*u*v* (ještě lepší perceptuální uniformita),
Yxy (varianta XYZ, kde se hodnoty x a y normalizují vůči jasu), RGB (množství prostorů odvozených od
základních barev – např. Adobe, Apple, ColorMatch, CIE RGB, NTSC, PAL/SECAM, sRGB, SMPTE-C,
WideGamut), HSV (odstín–sytost–jas), CMY (množství prostorů pro subtraktivní systémy, základní složky
se odvozují od výrobců barev), CMYK (prostory pro tisk s použitím černé barvy) a mnoho dalších.
Výběr základních RGB barev není zcela pevný. V praxi je výhodné zvolit přímo základní barvy daného
výstupního zařízení (obrazovky). Ty jsou dány většinou jejím luminoforem. Běžné jsou primární barvy
700/525/450 nm, EBU, HDTV (pro systém HDTV), P22 (bro běžné monitory s luminoforem P22), Trinitron
(pro monitory s obrazovkou Trinitron). K tomu, abychom ze základních barev získali plnohodnotný barevný
prostor, musíme přidat údaj o bílém (případně i černém) bodu a průběhu jasové křivky (většinou nějaká
hodnota gama).
26.2
Perceptuální uniformita (kapitola 2)
Je to míra odlišnosti ve vnímání rozdílů barev, které jsou v barevném prostoru stejně vzdálené. U běžných
barevných prostorů se vnímané rozdíly pro různé barvy a jasy liší až v poměru 1:80, hodnota 1:6 se již
považuje za dobrou.
26.3
Gama (kapitola 2, 3, 4, 5, 16)
Pod názvem gama křivka se skrývá exponenciální křivka a pod hodnotou gama její exponent. Gama se
v počítačové grafice používá mnoha různými způsoby – k popisu jasového zkreslení (tehdy se nazývá gama
zařízení), ke korekci tohoto jasového zkreslení (tehdy se nazývá gama korekce), k ukládání obrázku s co
nejmenší viditelnou ztrátou informace (takové obrázky jsou zcela běžné a nazývají se gama korigované ),
k úpravě hodnot při ukládání převodních tabulek.
137
138
26.4
KAPITOLA 26. DOPLNĚNÍ POJMŮ
Gamut (kapitola 22, 23)
Gamut je dosažitelná oblast barev v určitém barevném prostoru. Barvy mimo tuto oblast lze v daném
barevném prostoru zobrazit jen přibližně. K jejich přibližnému zobrazení se používají různé zobrazovací
záměry.
26.5
Bílý bod, černý bod a úrovně (kapitola 4, 24)
Bílý a černý bod jsou mezní hodnoty barevného systému. Zatímco bílý bod je při převodu barevných
prostorů povinnou hodnotou, udávající barevné souřadnice pro bílou barvu, u černého bodu se implicitně
předpokládá nulová hodnota. Obě hodnoty mají vliv na převod barevných prostorů a ovlivňují zobrazování. Podobný efekt, jako má změna bílého a černého bodu při barevné kalibraci, má i změna vstupních
a výstupních rozsahů při běžné editaci obrázku.
26.6
Iluminant (kapitola 22, 24)
Iluminant udává spektrální charakteristiku osvětlení. Má těsnou souvislost s bílým bodem – iluminant
popisuje osvětlení, zatímco bílý bod popisuje souřadný systém. Nejběžnější iluminanty se odvozují od barevných teplot – D50 (nejčastější), D55, D65, D75 resp. D93 – odpovídají, 5 000 K (teplá bílá) 5 500 K,
6 500 K, 7 500 K resp. 9 300 K (studená bílá). Další běžné iluminanty se označují A, B, C a E.
26.7
Barevná teplota (kapitola 22, 25)
Každé těleso vydává tepelné záření – ničím neovlivnitelné, závislé pouze na teplotě. Toto záření má pro
každou teplotu jinou barvu, kterou lze popsat jedinou hodnotou, zvanou barevná teplota. Tyto barvy mají
význačné postavení a v určitém rozsahu teplot jsou vnímány jako bílé.
26.8
Vizuální posouzení a barevná teplota (kapitola 22, 24)
Barevná teplota osvětlení ovlivňuje barevný vjem dvěma způsoby. Vliv prvního řádu je změna složení světla
odraženého od všech objektů v okolí zdroje světla – tedy i např. fotografií. Tento vliv však oko v širokém
rozsahu vyrovnává a vnímá ho pouze při styku dvou osvětlení s různými barevnými teplotami (např. okolní
světlo oproti nesprávně nastavenému monitoru, podvečerní pohled z okna při rozsvícené žárovce). Tento
vliv lze kompenzovat též analyticky.
Vliv druhého řádu je způsoben nerovnoměrnostmi ve spektrální charakteristice zkoumaného objektu.
U iluminantů odvozených z barevných teplot jsou posuny minimální, u jiných iluminantů mohou být
i značné. Proto se u kalibračních tabulek uvádí iluminant, při kterém odpovídají standardu nejpřesněji.
26.9
Převodní tabulky (LUT) barevného profilu (kapitola 23)
Jde o převodní tabulku, pomocí které se převádějí vstupní barvy na výstupní. Jsou pro ni důležité dva
speciální údaje: dimenze – 1D (tato krátká tabulka odpovídá možnostmi běžnému editoru křivek, jak jej
známe třeba z GIMPu) nebo 3D (plnohodnotná převodní tabulka) a hodnota gama (běžná hodnota je 3;
udává výběr hodnot, pro které jsou záznamy v tabulce; nemá nic společného s gama korekcí; jejím účelem
je minimalizovat numerické chyby).
26.10. ZOBRAZOVACÍ ZÁMĚR – RENDERING INTENT
26.10
139
Zobrazovací záměr – rendering intent (kapitola 2, 6, 25)
Jde o úpravu způsobu, jakým se na sebe mapují barevné prostory. Představme si situaci, kdy máme do prostoru CMYK namapovat obrázek, ve kterém se nachází mnoho odstínů jasně modré barvy. Je zřejmé,
že všechny tyto odstíny jsou mimo gamut systému CMYK a nelze je zobrazit přesně. Záleží tedy na našem
rozhodnutí – jak s obrázkem naložíme. Můžeme vybrat nejbližší zobrazitelnou barvu – to nezasáhne zbytek
obrazu, ale naše modré budou ploché. Můžeme též celý obraz určitým způsobem citlivě upravit (rozuměj
zkreslit), aby se tyto barvy ocitly uvnitř gamutu. Nejběžnější záměry pro mapování barev se nazývají:
perceptuální mapování, relativní kolororimetrické mapování, mapování sytosti, absolutní kolororimetrické
mapování.
Jinou úpravu používáme též při zobrazování na monitor, kde je jejím úkolem kompenzovat vliv okolního
osvětlení na stínítko obrazovky a na naše vnímání.
26.11
Korekce chyb při tvorbě barevných profilů
Každý kalibrační software se musí vyrovnávat s nepřesnostni i při tvorbě samotného profilu. Pokud např.
shodou okolností jeden ze stupňů šedé výrazně vybočuje z řady, je možné, že se jedná o náhodnou chybu
(např. odlesk nebo smetí na kalibrační tabulce, chyba při obsluze denzitometru). Software by pak měl
zareagovat – buď požádat uživatele o nové měření, nebo podezřelou hodnotu vyřadit a místo ní použít
odhad. Aby takovou chybu rozpoznal, musí navíc vnitřně udržovat jakousi tabulku očekávaných hodnot
měření. Odchylka od této hodnoty se nazývá fluktuace. Jistá míra fluktuace je přirozená (proto se ostatně
barevné profily vytvářejí), příliš velká hodnota naznačuje chybu.
26.12
Duplexní tisk
Duplexní tisk je tisk dvěma libovolně vybranými barvami. Tiskové hodnoty lze odvozovat různými postupy
z barevného obrázku (např. aproximací barev) nebo pomocí duplexních křivek z černobílého obrázku.
Duplexní křivky určují průběh použití jednotlivých barev v závislosti na jasu černobílého obrázku. Technika
duplexních křivek je ve výtvarné praxi velmi oblíbená. Při tisku je třeba volit správné natočení rastrů (viz
kapitola 15.
26.13
Bichromie
Bichromie je zvláštní druh tisku, který používá dvě různě tmavé verze téže barvy. Jak jsme si již řekli
(kapitola 4, 25), 10% a slabší rastry bývají při tisku poměrně nepřesné. Při bichromii se vytvoří speciální
duplexní křivka, která pro tisk světlých odstínů používá poměrně husté rastry světlejší barvy.
Použitím bichromie u černobílého tisku lze dosáhnout zcela mimořádného podání světlých odstínů.
Touto kapitolou jsme uzavřeli problematiku barevné grafiky a zpracování obrázků. V další kapitole se
podíváme na základní pojmy 3D grafiky.
140
KAPITOLA 26. DOPLNĚNÍ POJMŮ
Kapitola 27
Základní 3D algoritmy
3D grafika je stále populárnější nejen ve hrách, ale i v nejrůznějších vizualizačních aplikacích, strojírenstvím
počínaje a kadeřnickými salony konče. V našem seriálu se však nebudeme zabývat 3D aplikacemi, ale
používanými grafickými algoritmy. Jejich znalost nám pomůže orientovat se v obrovské škále možností
vizualizačních programů.
27.1
3D na 2D
Každý 3D program musí řešit převod třírozměrné „realityÿ do dvourozměrných souřadnic obrazovky.
K tomu existuje množství nejrůznějších algoritmů, podle účelu a úhlu záběru. Každý z nich zkresluje,
a každý z nich zkresluje jinak.
Pravoúhlé rovnoběžné zobrazení, používané často pro strojírenské výkresy, je velmi jednoduché při vykreslování pravoúhlých objektů orientovaných podle os. Při jiné orientaci však dává paradoxně zkreslené
objekty.
Axonometrie je další jednoduché zobrazení, které zachovává přímky. V rovnoběžné axonometrii je definován směr všech tří os a poměr zkrácení délek při vynášení. Pozice se vypočte sečtením hodnot pro
jednotlivé souřadnice. Protože toto zobrazení nemá perspektivu, existuje též úběžná axonometrie. V ní jsou
navíc definovány tři úběžné body (nekonečné hodnoty na osách) – k nim se sbíhají rovnoběžky ve směrech
os. Alespoň dva úběžné body bývají většinou mimo obrázek. Nevýhodou axonometrií je zkreslení při velkém
úhlu záběru. Pravoúhlé rovnoběžné zobrazení je tedy speciálním případem rovnoběžné axonometrie.
Další velkou skupinu tvoří systémy sférického mapování. Nejdříve se vypočítají úhlové souřadnice všech
objektů z místa pozorovatele – objekty se namapují na povrch jednotkové koule – a z této koule se pak mapují na rovinu. Jejich popisy najdeme v každé učebnici kartografie. Mapování obecně nezachovává přímky.
Nejběžnějším mapováním je azimutální zobrazení. Při něm se mapuje povrch koule na tečnou plochu.
Podle zachování určité veličiny se dělí na stejnoploché, stejnoúhlé a se zachováním délky na polednících (při
udávání vdálenosti od pólu).
Dalšími zajímavými azimutálními zobrazeními jsou projektivní zobrazení. Nejjednodušším z nich je přímková projekce. V ní se obraz z koule promítá přímkami na rovinu, a proto je omezená na zobrazovací úhly
silně pod 180. Projekce mají velký význam, neboť se jedná o přirozené zobrazovací metody většiny fotoaparátů (různé objektivy mohou používat různé typy projekce). V 3D grafice patří vedle axonometrie mezi
nejběžnější.
S méně obvyklými válcovými mapováními se setkáváme většinou pouze u panoramatických obrázků.
Z kartografie známe ještě další typy mapování (kuželové, polykonické), ale ty se v 3D grafice prakticky
nepoužívají.
141
142
27.2
KAPITOLA 27. ZÁKLADNÍ 3D ALGORITMY
Popis tělesa
V 3D grafice potřebujeme znát třírozměrný popis tělesa. Jakákoliv metoda musí poskytnout odpověď na několik důležitých otázek: zda zvolený paprsek těleso protne, v jakém bodě, jaký je zde normálový směr (směr
kolmý k rovině povrchu tělesa), případně jakou barvu bude těleso mít v tomto bodě.
Popíšeme si dvě nejčastěji používané metody – analytický popis a triangulaci.
Analytický popis je výhodný pro matematicky snadno popsatelná tělesa (rovina, koule, elipsoid, paraboloid, hyperboloid, grafy funkcí). Těleso je tak určeno parametrickou rovnicí, jejímž řešením zjistíme, zda
paprsek světla těleso protne, kde, a jaký je zde normálový směr.
Nejjednodušším objektem pro analytický popis je trojúhelník. Z toho vyšla myšlenka triangulace. Povrch
celého tělesa se popíše, jako by byl složen z malých k sobě přisedlých trojúhelníků. To můžeme aplikovat
na libovolné těleso. Velikost trojúhelníků zvolíme podle požadované přesnosti.
Mnoho programů obě metody kombinuje – běžná tělesa se triangulují, ale např. kouli lze zadat analyticky
(kvalitní triangulace koule totiž vyžaduje desítky trojúhelníků).
V praxi se setkáme i s dalšími modifikacemi těchto algoritmů – např. pro vizualizaci grafů bude výhodné
použít aproximaci čtyřúhelníkovou sítí.
27.3
Viditelnost objektů
Pokud kreslíme tělesa plnou barvou, musíme řešit problém viditelnosti. Nejjednodušším řešením je malířův
algoritmus. Tělesa seřadíme podle vzdálenosti; pak kreslíme vše, od nejvzdálenějších objektů k nejbližším,
kterými ty vzdálené prostě překryjeme. Malířův algoritmus selhává, pokud se objekty navzájem protínají.
Existuje i obrácené použití této metody. Při něm postupujeme od nejbližších objektů a na zobrazovanou plochu vyneseme značky „ jak daleko je vidětÿ. Pokud zjistíme, že objekt není vidět, vůbec se jím
nezabýváme.
Také odvrácené části tělesa jsou pro nás neviditelné. K tomu, aby bylo možné snadno rozpoznat, který
trojúhelník není vidět, se provede drobná úprava – trojúhelníky se orientují – stanoví se pevné pořadí
vrcholů, a to zároveň udává orientaci normálového směru ven z tělesa. Pokud normála směřuje směrem
od pozorovatele, je jasné, že se trojúhelník nachází na odlehlé straně povrchu.
27.4
Metody zobrazování
Největší vliv na výsledek má ovšem metoda zobrazování. V 3D grafice jich máme k dispozici širokou škálu
– od těch nejrychlejších až po fotorealistické.
Nejjednodušší metodou zobrazování je zcela jistě drátový model. Vznikne vykreslením všech úseček
triangulace.
Jen o trochu složitější je zakrytý drátový model. Vykresluje se podobně jako drátový model, z kreslení
jsou ovšem vyřazeny neviditelné části.
Další skupinou metod jsou metody stínování. Tyto metody již dokáží tělesa obarvit. Pro nápodobu skutečnosti používají bodové světelné zdroje, jejichž světlo se na tělesech rozptyluje. Jejich společným kladem
je vysoká rychlost zobrazování, záporem pak plastikově matný vzhled všech objektů. Metoda neumí zobrazit zrcadlový obraz a lom světla. Ve své základní verzi neumí pracovat ani se stíny, ale lze je do algoritmu
doplnit.
Základní verzí stínování pro triangulované modely je konstantní stínování. V této metodě se každý
z trojúhelníků obarví konstantní barvou. Metoda je ze všech nejrychlejší, s výbornou možností hardwarového
zrychlení. Při zobrazení oblých předmětů je však velmi nepřesvědčivá (ostrý přechod odstínů na hranách
trojúhelníků vnímá oko jako falešnou hranu).
27.4. METODY ZOBRAZOVÁNÍ
143
K „zaobleníÿ tvarů je proto nutné použít sofistikovanější metody – například Gouraudovo stínování.
Normálový vektor (a tím i barvu) ve vrcholech trojúhelníku získáme jako průměr normálových vektorů
všech tří sbíhajících se trojúhelníků. Nyní stačí obraz trojúhelníku na obrazovce vyplnit odpovídajícím
barevným přechodem, což lze učinit i s významnou pomocí hardwarových akcelerátorů.
Obrázek 27.1: Drátový model
Obrázek 27.2: Konstantní stínování
Obrázek 27.3: A po vyhlazení
Obrázek 27.4: Koule
Naproti tomu Phongovo stínování z normálových vektorů ve vrcholech aproximuje normálové vektory
ve všech bodech trojúhelníku, a teprve z nich odvozuje osvětlení daného bodu. Jde o náročnější postup,
výsledkem je však hladší vzhled zejména poblíž obrysu tělesa.
Aby jakékoliv stínování fungovalo v náš prospěch, musíme ke každé hraně triangulace přiřadit informaci,
zda se jedná o „falešnouÿ hranu, kterou je třeba vyhladit, nebo o skutečnou hranu. V tomto případě se
trojúhelníky „za hranouÿ do hodnot pro vrcholy nezapočítávají.
V další kapitole si přiblížíme dokonalejší metody pro fotorealistické zobrazování.
c
Obrázky byly vytvořeny pomocí demonstrančních programů z knihovny GLUT. A.
K. Peters, Mark Kilgard; David G. Yu.
144
KAPITOLA 27. ZÁKLADNÍ 3D ALGORITMY
Kapitola 28
Fotorealistické zobrazení
Metody s vysokou věrností zobrazování se často souhrnně označují jako „fotorealistickéÿ. To naznačuje,
že výsledky vypadají tak skutečně, jako by šlo o fotografie. Dnes si popíšeme techniky, které k takovým
výsledkům vedou, a přidáme několik ukázkových obrázků. Nakonec si povíme o specializovaných přístrojích
pro 3D grafiku.
28.1
Modely pro šíření, odraz a lom světla
Abychom mohli odhadnout osvětlení každého bodu v rozumném čase, je třeba provést aproximaci chování
všech objektů ve scéně. Její míra je závislá na schopnostech metody.
Nejjednodušší model, který se používá ve stínovacích metodách, je model zdrojů osvětlení jako světelných
bodů, od nichž se šíří světlo po přímce a ubývá s druhou mocninou vzdálenosti (občas se používá i menší,
nefyzikální mocnina, aby scéna nebyla příliš kontrastní). Narazí-li na těleso, rozptýlí se stejnoměrně do všech
směrů. Tato metoda je věrohodná při zobrazování matných plastů. Nemusíme příliš přemýšlet, abychom
zjistili, kde všude lze model vylepšit. Zdroje světla nejsou body, ale oblasti s určitou velikostí a tvarem,
světlo může být při cestě v poloprůhledných materiálech pohlcováno nebo rozptylováno, a nakonec i odraz
světla od tělesa není tak jednoduchý, nemluvě o lomu. K tomu nám však zdaleka metody stínování nestačí.
Lepší model, popisující paprsek světla, dopadající na těleso, je metoda tří význačných jevů na povrchu
tělesa – zrcadlový odraz, lom a rozptyl. Tento popis předpokládá, že se dopadající světlo rozdělí, a vyvolá
tyto tři efekty. První dva se vypočtou podle zákona odrazu a lomu, rozptyl se vypočte podle rozptylové
funkce. Nejjednodušší, konstantní rozptylová funkce, předpokládá stejný rozptyl do všech směrů (blízké
chování plastů). Mnohem lepší výsledek dávají empirické materiálové funkce poměru rozptylu v závislosti
na odchylce od směru zrcadlového odrazu. Protože základní verze funkce nebere v úvahu úhel odrazu od
tělesa, nedokáže ani ona popsat takové jevy, jako je například totální odraz (při velmi šikmém úhlu pohledu
se např. od skla téměř všechno světlo odrazí). Kromě komplikované dvoudimenzionální rozptylové funkce
k tomu slouží např. Torrance–Sparrowův model. Ten matematicky popisuje chování povrchu tělesa, jako by
bylo složeno z různě natočených „mikroplošekÿ, jejichž vliv se může ve výsledku skládat nebo potlačovat.
Jde o model výpočetně náročný, nicméně pro své kvality přesto používaný. I tato metoda bere v úvahu jen
povrch tělesa a nezabývá se rozptylem světla uvnitř průsvitných těles.
Další zajímavou možností pro rozšíření popisu povrchu tělesa jsou textury (vzory). Pokud má mít těleso
různobarevný povrch, provede se na něj mapování dvourozměrného obrázku (jedná se o stejná mapování,
o jakých jsme se zmínili v kapitole 1, pouze směr použití je opačný). Textury se používají nejen k tvorbě
barevného povrchu, ale často se jejich pomocí popisují i drobné nerovnosti nebo dokonce parametry rozptylu
světla.
145
146
28.2
KAPITOLA 28. FOTOREALISTICKÉ ZOBRAZENÍ
Metody sledování paprsku (ray tracing)
Metody sledování paprsku již lze zařadit mezi fotorealistická zobrazení.
Základní metodou je rekurzivní zpětné trasování paprsku. V této metodě provádíme zpětné trasování
paprsku z místa pozorovatele. Zjistíme-li, že paprsek přichází z určitého bodu na tělese, spočteme na něm
rozptyl vůči všem viditelným zdrojům světla. U paprsků zrcadlového odrazu a lomu zkoumáme, odkud
dorazily, abychom mohli celý postup zopakovat. Rekurzivní sledování paprsku dává ve své základní podobě
výborné výsledky u scén s lesklými a průhlednými předměty a zrcadly. Metoda dokáže spočítat i stíny.
Neporadí si však se zabarvením světla dvojím rozptýleným odrazem (např. bílá matná kulečníková koule
těsně vedle červené). Nezobrazí ani mírně neostrý odraz okolních těles od lehce matných okolních předmětů.
Metody progresivního trasování paprsku (sledování od zdroje světla k pozorovateli) nedoznaly výraznějšího rozšíření, vzhledem k jejich výpočetní náročnosti a skutečnosti, že většina výpočtů se provádí zbytečně
(jen minimum paprsků se dostane k pozorovateli). Na druhou stranu může v budoucnu tato metoda posloužit pro tvorbu hologramů (výpočetní náročnost tím nevzroste). Za zmínku stojí její zajímavá varianta
– metoda Monte Carlo – náhodné vysílání paprsků náhodnými směry.
Tím se dostáváme k nejsofistikovanějším fotorealistickým metodám, jakými bezesporu jsou radiační
metody.
28.3
Radiační princip
Postupy založené na radiačním principu simulují šíření světla ve scéně. Jsou odvozeny od algoritmů známých z tepelných výpočtů a jsou založeny na analytickém výpočtu vzájemného ovlivňování jednotlivých
plošek mezi tělesy. Ze vstupní geometrie se pro scénu vytvoří matice konfiguračních faktorů (octree), která
popisuje vzájemnou viditelnost a míru ovlivnění jednotlivých plošek – tedy jak silně přispívá jedna ploška
do světelné bilance druhé. Poté se použijí materiálové funkce jednotlivých plošek a vznikne obrovská soustava lineárních rovnic. Ta se vyřeší některou ze známých metod (např. iterativní Gauss-Seidlova). Tím
dostaneme vyzařovací funkci všech plošek ve scéně. Protože radiační metoda pracuje s triangulací, následuje
vyhlazení pomocí známého stínování.
Právě popsaná základní verze je extrémně výpočetně náročná. Její první implementace radiosity vyžadovala pro výpočet klasické testovací scény (místnost se židlemi, reflektory a koulemi na stole) na tehdy
nejrychlejším počítači Cray více než pět dnů strojového času. Problémem radiačních metod je nejen výpočetní náročnost, ale i použití složitějších analytických těles.
Časem vznikly různé urychlovací postupy, které metodu přiblížily i majitelům běžných PC.
V praxi se lze setkat s plynulou škálou postupů od stínování až po radiační metody.
Protože ani standardní radiační metoda nestačí k věrnému zobrazení některých scén (např. barevné
reflektory v mlze), vývoj algoritmů dále pokračuje.
28.4
Přístroje pro 3D grafiku
3D grafika se vymanila ze svých skrovných začátků a vstoupila plně na komerční trh. Podobně, jako existují
fotobanky s běžnými fotografiemi, existují i 3D banky, kde si můžete požadovaný model vybrat a zakoupit.
Na reklamní disketě jedné firmy najdete dokonce 3D model krávy . . .
Přestože existuje mnoho proprietárních formátů souborů pro 3D modelování, právě díky potřebám
3D bank vzniklo také mnoho špičkových převodníků mezi 3D formáty (převážně komerčních). Nejste tedy
v situaci majitelů šablon formulářů pro kancelářské balíky, kteří musí se změnou programu zahodit i všechny
vytvořené šablony . . .
Jak takové modely vznikají? Většinou je nevytváří žádný počítačový grafik (či snad „počítačový sochařÿ?). Nástrojem na jejich tvorbu jsou 3D skenery. Do speciální zatemněné místnosti se vloží model,
28.4. PŘÍSTROJE PRO 3D GRAFIKU
147
Obrázek 28.1: Superquadrics
Oblíbený šetřič obrazovky Superquadrics ukazuje, že i vyhlazené stínování může dát vysoce působivé
výsledky, navíc počítač běžné výpočetní síly může objekty plynule animovat, sice bez vyhlazování hran,
ale zato i s texturou. Zmíněný plastový vzhled zde není na závadu.
Autoři: 1981 Dr. Alan Barr (Caltech University), 1987–1997 Ed Mackey.
načež skener začne objekt osvětlovat laserem (lasery). Podle zjištěného místa dopadu pak počítač vytvoří
3D model. Další metody pro konvexní resp. „téměř konvexníÿ objekty jsou založeny na „skenováníÿ za
pomoci obepínajícího lanka nebo měřícího hrotu (tento postup je používán u průmyslových NC strojů).
Jinou možností je analýza několika fotografií objektu, kdy se před bodový zdroj světla vloží kontrastní
čtvercová síť.
Zajímavé jsou též obchody s dynamickými modely – rozpohybovat pouhou triangulaci krávy by byla
neskutečná námaha. A tím jsme se dostali k jednomu z témat příští kapitoly – 3D animaci.
148
KAPITOLA 28. FOTOREALISTICKÉ ZOBRAZENÍ
Obrázek 28.2: Zrcadlové koule
Silnou stránkou rekurzivního sledování paprsku jsou lesklé plochy a zrdcadlové odrazy. Velká kulička
zároveň ukazuje použití textury k popisu nerovností povrchu.
Obrázek byl vytvořen pomocí demonstranční scény Cluster od Erica Hainese z programu Persistence of VisionT M Ray
Tracer (PovRay)[120].
Obrázek 28.3: Místnost
Radiační metoda umožňuje simulovat zrcadlové odrazy na stěně („prasátkaÿ) nebo odraz rozptýleného
světla. Cenou za kvalitu je zhruba půlhodina strojového času na 1,4 GHz Athlonu.
Vytvořeno z ukázkové scény programu Radiance[38].
28.4. PŘÍSTROJE PRO 3D GRAFIKU
149
Obrázek 28.4: Stínování
Obrázek 28.5: Sledování paprsku
Obrázek 28.6: Radiosity
Srovnání typických vlastností jednotlivých metod na vybrané scéně: Nahoře stínování s použitím stínů,
vlevo rekurzivní sledování paprsků s měkkými stíny a vpravo radiosity. Je zřejmé, že sledování paprsku již
dokáže vytvořit skleněný vzhled krychle, ale vzájemné odrazy mezi matnými tělesy zvládnou až radiační
metody.
Obrázky byly vytvořeny pomocí demonstranční scény Shadows od Steva Angera z programu Persistence of VisionT M Ray
Tracer (PovRay)[120].
150
KAPITOLA 28. FOTOREALISTICKÉ ZOBRAZENÍ
Obrázek 28.7: Šachy
Ani radiační metoda neřekla poslední slovo! Dalšího zlepšení lze dosáhnout též simulací chování objektivu
fotoaparátu či lidského oka – zde např. nastavení ohniskové vzdálenosti. Výpočetní čas však dosáhl
třičtvrtěhodinu (Athlon 1,4 GHz DDR).
c
Obrázky byly vytvořeny pomocí demonstranční scény Chess 2 od Ferry Island Pixelboys (1991),
Ville Saariho a Dana
Farmera (1996) z programu Persistence of VisionT M Ray Tracer (PovRay)[120].
Všechny zde uvedené obrázky byly vytvořeny v Linuxu za pomoci otevřeně kódových aplikací.
Kapitola 29
Fraktály, animace, holografie,
3D galerie
V této kapitole dokončíme téma 3D grafiky. Dozvíme se o použití fraktálů, o možnostech animace, o urychlujících metodách a o počítačové holografii. Knihu o grafice v UNIXu ukončíme malou otevřeně kódovou
obrazovou přílohou.
29.1
Fraktály v grafice
Obrázek 29.1: Arches
Fraktály mimořádně zvyšují věrohodnost scény.
Obrázek byl vytvořen pomocí demonstranční scény Arches od Dana Farmera z programu Persistence of VisionT M Ray
Tracer (PovRay[120])
Klasickým problémem, se kterým se potýká jednoduché fotorealistické zobrazení, je nevěrohodná dokonalost zobrazených objektů – nikde žádná šmouha, vše je dokonale pravidelné. Matematika si naštěstí ví
rady i zde – objevila zvláštní funkce, které, ač jsou deterministické, vykazují známky nepředvídatelnosti.
Těmto funkcím se říká fraktální a s nástupem počítačové grafiky se staly oblíbeným objektem zobrazení.
Fraktály bývají většinou popsány jako oblast konvergence nějaké operace nebo rekurzivní definicí. Vlastnosti vzniklého objektu se mění od místa k místu, a proto vypadá fraktálová textura nepravidelně.
151
152
KAPITOLA 29. FRAKTÁLY, ANIMACE, HOLOGRAFIE, 3D GALERIE
Použití fraktálů v počítačové grafice je velmi široké – některé fraktály mají zajímavý vzhled samy o sobě
a stačí vybrat rozsah zobrazených hodnot. Další jsou dobrým námětem pro animace (změna parametrů
fraktálu v čase dokáže vytvořit krásné animace). Největší uplatnění však mají ve 3D grafice – pomocí
fraktálů lze generovat mraky, stromy i textury nepravidelných povrchů. Pro grafické zobrazení je zajímavý
nejen vlastní fraktál, ale i rychlost konvergence funkce v okolí fraktálu.
Porozhlédnete-li se po možnostech GIMPu, zjistíte, že fraktály jsou základem mnoha modulů. Na ukázce
29.2 vidíte Man’o’warův fraktál vytvořený pomocí Badatele fraktálů.
Obrázek 29.2: Man’o’warův fraktál
29.2
Ambientní osvětlení
U trasovacích programů se často definuje ambientní osvětlení. Jedná se o světlo, přicházející ze všech stran
z okolí scény, není-li zastíněno. Většinou bývá stejnoměrné, ale lze jej i modulovat např. texturou.
29.3
Animace
Základním typem animace je změna vzájemné polohy objektů v čase. Objekty se na scéně pohybují podél
cesty. Cesta bývá většinou určena parametrickou Bézierovou křivkou, která udává polohu tělesa v čase.
Další parametrická funkce může udávat rotaci tělesa v čase. Běžné je též určení rotace dvěma speciálními
způsoby – konstantním natočením v prostoru nebo natočením po směru cesty.
Podobně, jako existuje vyhlazování (antialiasing) objektů v prostoru, či naopak rozostřování podle
hloubky ostrosti, existuje takové rozšíření i v animacích – rozmáznutí pohybem (motion blur). To dává
mnohem věrohodnější dojem rychlého pohybu než sled ostrých statických obrázků.
CAD aplikace používají pro animace speciální schémata, která popisují možnosti vzájemné polohy mezi
jednotlivými objekty. Ta pak slouží nejen k animaci, ale též ke sledování funkčnosti modelovaného zařízení.
Ukázka z demonstrančního programu Walker od Kanishky Agarwala, Philipa Winstona a Rana Libeskind-Hadase z knihovny
GLUT.
29.4. DYNAMICKY MODELOVANÉ OBJEKTY
Obrázek 29.3: Chodící robot – první krok
29.4
153
Obrázek 29.4: Chodící robot – druhý krok
Dynamicky modelované objekty
U některých objektů prostá změna polohy nestačí. Zde se používá dynamické modelování. Existuje velké
množství jednoúčelových algoritmů dynamicky modelujících různé objekty.
Obrázek 29.5: Animovaná tvář – vážná
Obrázek 29.6: Animovaná tvář – s úsměvem
Například u obličeje se používá modelování svalových úponů. Pohyb se v zadaném poměru přenáší
z místa úponu podle na okolní body triangulace. Pokud jste pozorně prohlédli drátový model obličeje
v kapitole 27, mohli jste si všimnout podivných černých čar – jednalo se právě o úpony – model obličeje
c A. K. Peters, Mark Kilgard; David G. Yu.
z projektu Face je totiž pohyblivý. Program Face z knihovny GLUT. Ukázka změny napětí tří svalů.
Podobně se pro dynamické modelování těla používá simulace kostry. Různě náročné algoritmy pak
převádějí dobře vypočítatelné pohyby kostry na mnohem hůř vypočítatelné pohyby povrchu těla.
Do jiné kategorie patří simulace pružných objektů (např. srážka dvou gumových koulí). Jejich simulace
není již jen otázkou 3D algoritmů, ale i algoritmů pro dynamiku pružných těles. Naopak u nepružných těles
a kapalin přijde ke slovu hydrodynamika.
154
KAPITOLA 29. FRAKTÁLY, ANIMACE, HOLOGRAFIE, 3D GALERIE
Poslední skupinou, o které se zde zmíníme, jsou chlupy a vlasy. Pro 3D algoritmy jsou opravdovým
oříškem. Jednoduché modely simulují vlasy a chlupy pomocí textur. Takové simulace se používají hlavně
v interaktivních hrách. Na druhé straně škály jsou algoritmy, které počítají pohyb každého chlupu zvlášť –
nejdříve spočítají pohyby chlupu v srsti a poté podle jeho optických vlastností provedou trasování paprsku.
Každému chlupu je tedy možné přiřadit jinou barvu, texturu i pružnost. Tato metoda se používá ve filmech,
scény počítají superpočítače s mnohaterabajtovým diskovým prostorem . . .
29.5
Urychlující metody
Důležitou součástí každého grafického programu však nejsou jen implementace vlastních grafických algoritmů, ale i jejich optimalizace, které mohou zajistit řádové urychlení výpočtu.
Buňková metoda rozdělí prostor na buňky, do nichž se zapíše, která tělesa se v nich nacházejí. Při
trasování paprsků se tak vynechá testování objektů, se kterými se paprsek nepotká. Buňky o shodné
nebo odlišné velikosti obsahují záznam s označením tělesa nebo seznamem plošek, které se v dané
oblasti nacházejí. Metoda je poměrně citlivá na správnou velikost scény.
Metrické omezení naproti tomu přidává ke každému objektu informaci o jednoduše otestovatelné obálce
objektu. Pokud paprsek neprotne obálku, je jasné, že neprotne ani těleso. Metoda je výhodná pro
scény s velkým množstvím komplikovaných malých těles.
Omezení rekurze je nutné pro všechny trasovací programy, aby nedošlo k zacyklení. Většinou se omezuje
maximálním počtem odrazů a nejmenším uvažovaným světelným příspěvkem.
Existuje ještě množství dalších zrychlujících postupů. Některé jsou publikované, jiné tvůrci programů tají.
29.6
Holografie
Holografie je speciální způsob zobrazení, při kterém lze obraz na hologramu pozorovat z různých úhlů.
Využívá vlnových vlastností světla, konkrétně interference. Při expozici laserem nebo jiným zdrojem koherentního světla (pro první hologramy se používala rtuťová výbojka), které zčásti dopadá přímo a zčásti se
odráží od scény, vznikají v emulzi filmu submikroskopické interferenční linie. Po ozáření koherentním světlem stejné vlnové délky uvidíme prostorový obraz původní scény. Dnes jsou známy techniky, které dokáží
hologram zobrazit i při běžném světle.
Představa, že hologram v každém bodě obsahuje celek, je poněkud zjednodušená. Skutečnost je taková,
že jsou v něm zaznamenány pouze interferenční linky, a ty určují, do kterých směrů se bude v daném bodě
ohýbat světlo. Teprve ohyb světla vytvoří z celé plochy dojem prostorového tělesa.
Dnešní technologie umožňuje vytvořit hologram virtuálně – v počítači. Z rozdílů ve světle dopadajím
do jednotlivých bodů lze vypočítat interferenční linie a poté je přenést na hologram (nemusí se jednat
o emulzi, hologramy lze i lisovat, podobně jako CD).
Důležitou vlastností takto vytvořených hologramů je praktická nemožnost kopírování – interferenční
linie totiž mohou být od sebe vzdáleny pouze stovky nanometrů, a to je zatím pro jakýkoliv kopírovací
stroj příliš málo.
V budoucnosti se možná dočkáme i holografických obrazovek a podobných vynálezů. Na světě zatím
existuje jen několik holografických kin s poměrně malou promítací plochou. Filmů je vzhledem k výrobním
nákladům také málo a nepřesahují délku několika minut.
Máte-li výkonný počítač, můžete si však třírozměrný správce oken vyzkoušet už nyní – je jím projekt
3DWM[157], založený na spolupráci s běžným VNC serverem.
29.7. ZÁVĚR
29.7
155
Závěr
Vážnou část naší knihy o grafice uzavřeme několika obrázky ze skvělého programu Persistence of VisionT M
Ray Tracer (PovRay[120]).
Obrázek 29.7: Crack (sledování paprsku)
Obrázek 29.8: Crack (radiační metoda)
Dvě ukázky značného rozdílu mezi prostým sledováním paprsku a radiační metodou
example a scéna Laser od Dana Farmera).
Obrázek 29.9: Laser (sledování paprsku)
(scéna Crackle pattern
Obrázek 29.10: Laser (radiační metoda)
156
KAPITOLA 29. FRAKTÁLY, ANIMACE, HOLOGRAFIE, 3D GALERIE
Obrázek 29.11: Světla v mlze
Obrázek 29.12: Skleněné objekty
Problémem nemusí být ani světlo v mlze ani rozklad světla na duhové barvy
Obrázek 29.13: Tvar čajové konvičky
Tyto obrázky snad nepotřebují komentář
(scény Media 2 a Diffract).
Obrázek 29.14: Dřevěná krabička
(scéna Teapot 2 a scéna Woodbox od Dana Farmera).
Kapitola 30
(Ne)vážně o grafice
Co se dnes dozvíte? Že i ve virtuálním světě počítačové grafiky se odehrávají podivuhodné věci – že když
neuhne kosmická loď hoře, musí uhnout hora kosmické lodi, že barevná kalibrace hamburerů je věda a že modelky dostávají ve studiích nová těla. Že i v počítači lze uklidit po řemeslnících. K čemu slouží podivné
nápisy na letácích. A v jakém programu lze také přepsat texty.
Většina příběhů, které dnes budu vyprávět, se zakládá na skutečnosti (a podobné se v grafických studiích
odehrávají i dnes). Některé z nich mám z druhé či třetí ruky, takže je berte s rezervou. Na druhou stranu
nejde jen o humorné příběhy. Stojí za to se zamyslet, jak dalece je svět kolem nás tvořen v grafických
studiích . . .
30.1
. . . tak musí uhnout hora
V dávných dobách, kdy i nejrychlejší počítače superpočítaly mnohem pomaleji, se počítala vrcholná scéna
slavného filmu – průlet kosmické lodí nad hořící planetou. Přípravy scény proběhly výborně a zbývalo již
celou animaci vypočítat (to vyžadovalo mnoho týdnů strojového času). Když už byla značná část animace
spočítaná, jeden z animátorů se zděsil – kosmická loď míří přímo na vysokou horu v popředí. Propočet ukázal, že loď brzy do hory narazí. Co teď? Na úhybný manévr již bylo pozdě. Nezbylo než mírně přemodelovat
terén, aby se hora lodi vyhnula. Jenže přemodelování v takové blízkosti působilo příliš nápadně. Animátoři
tedy procházeli políčka nazpět – horu bylo vidět již pěkně zdáli. Na přepočítání celé sekvence však již nebyl
čas, a tak bylo nutné vybrat vhodné políčko filmu, kde se hora nenápadně „uhneÿ. Na zkušebním promítání
si změny terénu nikdo nevšiml, a tak scéna ve filmu zůstala.
30.2
Jak vypadá nejlákavější hamburger?
Jedna bohatá firma, prodávající ve svých jídelnách po celém světě hamburgery, si najala neméně bohatou
reklamní agenturu, aby jí zjistila, jaký hamburger bude na vývěskách vypadat nejlákavěji. Reklamní agentura udělala testy lákavosti vzhledu na dobrovolnících a došla k překvapujícímu závěru – zelené hamburgery
nelákají. Studio dostalo zajímavý úkol: několik zvlášť dobře nafotografovaných hamburgerů speciálně barevně upravit – z obrázku hamburgeru odstranit co nejvíce zelené složky, aniž by byla patrná nepřirozenost
barev. Až půjdete kolem jejich podniku, můžete se o výsledku přesvědčit (jako vegetarián nedokážu správně
posoudit, zda maso vypadá chutně).
30.3
S kým fotografovali ten nový letní model?
O poprasku (o plastických operacích nemluvě), který způsobil jeden počítačový grafik, když z horlivosti
vyretušoval na módní fotografii modelce pupík, vám psát nebudu – to jste se mohli dočíst v každém horším
bulvárním časopise. Napíšu o něčem, co se dělá v tichosti . . .
157
158
KAPITOLA 30. (NE)VÁŽNĚ O GRAFICE
Redaktor módní rubriky slavného časopisu seděl v grafickém studiu a se zaujetím pozoroval, jak rychle
z nepovedené fotografie zmizelo, co tam nepatří. A dostal nápad: „A co takhle hlavu? Dokázal byste ji vyměnit?ÿ Slovo dalo slovo, a příště si redaktor přinesl fotografie nového modelu nafotografované s neznámou
manekýnou, a pár fotografií s drahou supermodelkou, které měli v archivu. Retuš dopadla skvěle a žádný
z kolegů nepoznal, že jde o montáž. Uvedený postup dokonce vyšel řádově levněji než fotografování celé
kolekce se supermodelkou. Ta pak dostala novou smlouvu. Ve studiu nafotografovali jen její obličej proti
neutrálnímu pozadí a ve smlouvě stálo, že její tvář se smí po celý rok objevovat na módních fotografiích
v jejich časopise. Na castingu vybrali manekýnu s podobnými proporcemi a nafotografované snímky putovaly do studia. Tam byla s největší pečlivostí zopakována výměna hlavy a fotografie pokračovaly v cestě
na stránky časopisu. Až příště uvidíte fotografii známé modelky v nějakém módním časopise, vězte, že to
může být jen montáž.
30.4
Co znamenají podivné značky na reklamních dopisech?
Už vám někdy přišel do schránky reklamní dopis? Že se ptám! Zarazili jste se někdy nad tím, proč je na objednávkovém kupónu řádka podivných písmen, jako třeba „ . . . Fi1Fi2Fi3IT0ÿ? Dnes vám to prozradím. Jde
o průzkum odezvy u jednotlivých skupin potenciálních zákazníků. Tiskaři občas zastaví stroj a odmažou
z kovolistu některá písmena. Takže každá skupina lidí dostane trochu jiný leták. Poslední písmena (zde
napravo) naznačí, kdo leták dostává. Při troše fantazie si domyslíme, že v tomto případě to může znamenat
„informační technik, bez zaměstnancůÿ. Anebo něco úplně jiného. Odesláním objednávky o sobě sdělujete
víc, než si myslíte!
30.5
Napsal jsem to na počítači!
Jeden zákazník si pořídil počítač, a když přinesl zakázku, prohlásil: „Mám pro vás ten text přepsaný
na disketě!ÿ Na otázku v jakém programu však nebyl schopen odpovědět. Při kontrole diskety jsem viděl
jediný soubor – popis.jpg. Podivná přípona textového souboru, řekl jsem si. Chyba lávky. Jednalo se
o nefalšovaný JPEG soubor – zákazník totiž celý text přepsal v grafickém editoru! Z toho plyne poučení –
příliš mnoho programů v počítači začátečníka škodí.
30.6
A to koště bych prosil dát pryč . . .
Pokud si myslíte, že většina grafické práce spočívá v retušování škrábanců, nenechte se mýlit. Někdy je nutné
obrázky změnit k nepoznání. Tu se na fotografii vyskytne nepatřičná osoba či předmět, jindy fotografovaný
objekt nevypadá, jak by měl. Můžete se podívat na obrázcích . . .
Nakladatel cestopisu přemluvil svého syna, aby navštívil Pordenone v Itálii a vyfotografoval dům, ve kterém žil slavný středověký cestovatel českého původu – Odorico (Oldřich). Dům se však právě rekonstruoval.
Fotografie s lešením a kupou písku, pořízená pozdě odpoledne, za mnoho nestála. Podexpozici napravili
ve fotolaboratoři, poté jsem nastoupil s GIMPem.
Stejně dobře je ale možné „odstranitÿ nepohodlnou osobu, nebo naopak doplnit někoho, kdo na fotografii
„chybíÿ. To nakonec „tvůrci dneškaÿ uměli i bez počítačů. Počítače pouze umožňují manipulovat s „mediální
skutečnostíÿ rychle, levně a efektivně.
(obrázky z publikací Poutní místo Svatá Dobrotivá, Onyx, 1999 a Cesta do říše Velkého chána, Kvasnička a Hampl, 1998)
30.6. A TO KOŠTĚ BYCH PROSIL DÁT PRYČ . . .
159
Obrázek 30.1: Původní fotografie
„Dlažbu je třeba opravit . . . ÿ
Obrázek 30.2: Fotografie s retuší
„ . . . a je dlažba opravená.ÿ
Obrázek 30.3: Původní fotografie
„ . . . a ty hromady dřeva uklidit!ÿ
Obrázek 30.4: Fotografie s retuší
„A máme uklizeno . . . ÿ
160
KAPITOLA 30. (NE)VÁŽNĚ O GRAFICE
Obrázek 30.5: Dům s retuší
Poznáte na fotografii, kde byl písek a kde lešení?
Seznam obrázků
2.1
Kruhy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.2
Diagram CIE-XZY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.3
Fotografie bez kompenzace gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.4
Fotografie s kompenzací gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.5
Stupnice bez kompenzace gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.6
Stupnice s kompenzací gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.7
Tmavé a větlé terčíky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.8
Stupnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.1
Pohled na XSane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4.2
Fotografie 540 DPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.3
Fotografie 540 DPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.4
Sken bez úprav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.5
Sken se spřaženým rozsahem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.6
Sken s rozsahem po barvách . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.7
Kalibrovaný sken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.8
Špatně nastavené úrovně . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.9
Sken se správně upravenými úrovněmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
5.1
Moiré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.2
Čistý obrázek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.3
Detail moiré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.4
Ukázka rozbití rastru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.5
Ukázka retuše razítkem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.6
Neostrý obrázek
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.7
Maskování rozostření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.8
Iterativní maskování rozostření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.9
Iterativní maskování rozostření v lineárním prostoru . . . . . . . . . . . . . . . . . . . . . .
34
5.10 Doostření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.11 Iterativní doostření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.12 Nelineární filtr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
161
162
SEZNAM OBRÁZKŮ
5.13 Iterativní nelineární filtr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
6.1
Sken bez úprav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
6.2
Kalibrovaný sken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
6.3
Text pro ocr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
7.1
Ukázka tiskových značek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
7.2
Ukázka archové montáže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
8.1
Výstup ukázky PostScriptu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
11.1 Zmetkovník 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
11.2 Zmetkovník 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
12.1 Výstup ukázky METAPOSTu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
12.2 Výstup ukázky pstricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
13.1 Ukázka Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
13.2 Ukázka Sodipodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
13.3 Ukázka Kontour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
13.4 Ukázka Xfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
13.5 Ukázka Figurine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
13.6 Ukázka editoru cest
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
13.7 Ukázka Gfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
13.8 Ukázka ImPress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
13.9 Ukázka Scribus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
13.10Ukázka Dia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
14.1 Výsledek setstrokeadjust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
14.2 Výsledek vyhlazování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
14.3 Floyd-Stenibergův rozklad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
14.4 Vyplnění Hilbertovou křivkou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
14.5 Bayerovo seskupení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
14.6 Bodové seskupení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
15.1 Test v šedích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
15.2 Tiskový rastr Ghostscriptu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
15.3 Rastr Ghostscriptu pro malá rozlišení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
15.4 Rastr 15
◦
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.5 Čárový rastr
90
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
15.6 Mřížový rastr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
SEZNAM OBRÁZKŮ
163
15.7 Změna frekvence rastru na 25 LPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
15.8 Rastr o frekvenci 25 LPI se superbuňkami . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
15.9 „Náhodnýÿ rastr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
15.10Pole prahů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
19.1 Dialogové okno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
19.2 Původní fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
19.3 Přebarvená fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
19.4 Dialogové okno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
19.5 Původní obrázek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
19.6 Přebarvený obrázek
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
19.7 Dialogové okno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
19.8 Dialogové okno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
19.9 Dialogové okno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
19.10Původní fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
19.11Krok 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
19.12Krok 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
19.13Fotografie po úpravě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
19.14Původní fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
19.15Zčásti přebarvená fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
19.16Dialogové okno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
19.17Původní fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
19.18Po záměně komponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
19.19Dialog záměny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
20.1 Ukázka retuše razítkem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
20.2 Původní obrázek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
20.3 Obrázek po retuši závěsu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
20.4 Původní obrázek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
20.5 První tah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
20.6 Hrubá práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
20.7 Hotová retuš . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
20.8 Prolínačka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
21.1 Původní obrázek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
21.2 Obrázek po korekci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
21.3 Křivka červené . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
21.4 Křivka modré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
22.1 Spektrum Slunce s vyznačenými absorbčními čárami . . . . . . . . . . . . . . . . . . . . . . 119
164
SEZNAM OBRÁZKŮ
22.2 Závislost citlivosti lidského oka v závislosti na vlnové délce. . . . . . . . . . . . . . . . . . . 120
22.3 Diagram CIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
22.4 Skutečná barevnost kalibrační tabulky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
22.5 Sken na materiálu Kodak Professional Digital.
. . . . . . . . . . . . . . . . . . . . . . . . . 123
22.6 Simulovaný sken na materiálu Ektacolor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
23.1 Sskener → barevný profil skeneru → barevný profil tiskárny → tiskárna, mezi barevnými
profily skeneru a tiskárny datová odbočka barevný profil monitoru → náhled na obrazovce . 127
24.1 Barevná kalibrační tabulka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
24.2 Fotografie s patrným čočkovým efektem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
24.3 A po korekci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
25.1 Původní obrázek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
25.2 Naivní převod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
27.1 Drátový model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
27.2 Konstantní stínování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
27.3 A po vyhlazení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
27.4 Koule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
28.1 Superquadrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
28.2 Zrcadlové koule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
28.3 Místnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
28.4 Stínování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
28.5 Sledování paprsku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
28.6 Radiosity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
28.7 Šachy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
29.1 Arches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
29.2 Man’o’warův fraktál . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
29.3 Chodící robot – první krok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
29.4 Chodící robot – druhý krok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
29.5 Animovaná tvář – vážná . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
29.6 Animovaná tvář – s úsměvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
29.7 Crack (sledování paprsku) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
29.8 Crack (radiační metoda) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
29.9 Laser (sledování paprsku) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
29.10Laser (radiační metoda) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
29.11Světla v mlze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
29.12Skleněné objekty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
SEZNAM OBRÁZKŮ
165
29.13Tvar čajové konvičky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
29.14Dřevěná krabička . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
30.1 Původní fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
30.2 Fotografie s retuší . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
30.3 Původní fotografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
30.4 Fotografie s retuší . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
30.5 Dům s retuší . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
166
SEZNAM OBRÁZKŮ
Odkazy
[1] ftp://ftp.cgi.com/graphics/tiff/TTN2.draft.txt
[2] ftp://ftp.fi.muni.cz/pub/gnu/intlfonts/
[3] ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/ljpeg-6b.tar.gz
[4] ftp://ftp.informatik.uni-erlangen.de/pub/doc/ISO/JBIG/
[5] ftp://ftp.onshore.com/pub/libtiff/TIFF6.ps.Z
[6] ftp://ftp.sunet.se/pubf/os/Linux/funet/util/X11/contrib/xocr 4 1.english.tar.gz
[7] ftp://math.feld.cvut.cz/pub/olsak/a2ac/
[8] ftp://math.feld.cvut.cz/pub/olsak/t1accent/
[9] ftp://metalab.unc.edu/pub/Linux/apps/graphics/
[10] ftp://metalab.unc.edu/pub/Linux/apps/graphics/capture/
[11] ftp://metalab.unc.edu/pub/Linux/apps/graphics/draw/
[12] ftp://metalab.unc.edu/pub/Linux/libs/giflib/
[13] ftp://metalab.unc.edu/pub/Linux/libs/graphics/
[14] ftp://metalab.unc.edu/pub/Linux/X11/xutils
[15] http://altmark.nat.uni-magdeburg.de/˜jschulen/ocr/
[16] http://autotrace.sourceforge.net/
[17] http://bulletin.cstug.cz/bul983-4.shtml
[18] http://ccambien.free.fr/wocar/
[19] http://csep10.phys.utk.edu/astr162/
[20] http://csep10.phys.utk.edu/astr162/lect/sun/spectrum.html
[21] http://documents.cfar.umd.edu/ocr/
[22] http://figurine.sourceforge.net/
[23] http://film.gimp.org/
[24] http://gcms.sourceforge.net/
[25] http://gimp-print.sourceforge.net/
[26] http://gnu.arachne.cz/
[27] http://gnuwin32.sourceforge.net/packages/xpm2wico.htm
167
168
[28] http://http.cs.berkeley.edu/˜fateman/kathey/ocrchie.html
[29] http://nautilus.eazel.com/
[30] http://oss.software.ibm.com/developer/opensource/linux/projects/omni/
[31] http://panda.mostang.com/sane/
[32] http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf
[33] http://partners.adobe.com/asn/developer/technotes.html
[34] http://partners.adobe.com/asn/developer/technotes.html
[35] http://pegasus.rutgers.edu/˜elflord/font howto/
[36] http://persoweb.francenet.fr/˜cambien/eindex.html
[37] http://prtr-13.ucsc.edu/˜badger/software/libungif/index.shtml
[38] http://radsite.lbl.gov/radiance/HOME.html
[39] http://sketch.sourceforge.net/
[40] http://sodipodi.sourceforge.net/
[41] http://sourceforge.net/projects/netpbm/
[42] http://targets.coloraid.de/
[43] http://web.access.net.au/argyll/color.html
[44] http://web2.altmuehlnet.de/fschmid/
[45] http://www.acme.com/software/pbmplus/
[46] http://www.adobe.com/
[47] http://www.adobe.com/support/techguides/color/colortheory/vision.html
[48] http://www.aladdin.com/
[49] http://www.aladdinsys.com/
[50] http://www.apple.com/
[51] http://www.artifex.com/
[52] http://www.astart.com/lprng/LPRng.html
[53] http://www.buzzard.org.uk/jonathan/scanners.html
[54] http://www.buzzard.org.uk/jonathan/scanners-usb.html
[55] http://www.cfar.umd.edu/˜kia/ocr-faq.html
[56] http://www.cie.co.at/cie/
[57] http://www.cis.rit.edu/mcsl/
[58] http://www.claraocr.org/
[59] http://www.coloraid.de/
[60] http://www.color.org/
[61] http://www.colourware.co.uk/
ODKAZY
ODKAZY
[62] http://www.cs.adfa.oz.au/˜gfreeman/
[63] http://www.cstug.cz/
[64] http://www.cstug.cz/
[65] http://www.cs.wisc.edu/˜ghost/gsview/epstool.htm
[66] http://www.cs.wisc.edu/˜ghost/gsview/index.htm
[67] http://www.dcs.ed.ac.uk/home/ajcd/psutils/
[68] http://www.dcs.ed.ac.uk/home/jec/programs/ogonkify/
[69] http://www.ece.ubc.ca/˜mdadams/jasper/
[70] http://www.eff.org/blueribbon/
[71] http://www.ens.fr/omega
[72] http://www.epson.com/
[73] http://www.fi.muni.cz/ adelton/perl/
[74] http://www.freecolormanagement.com/
[75] http://www.freetype.org/
[76] http://www.gegl.org/
[77] http://www.ghostscript.com/
[78] http://www.gimp.org/
[79] http://www.gnu.org/software/hp2xx/
[80] http://www.gnuplot.org/
[81] http://www.gphoto.org/
[82] http://www.gretagmacbeth.com/
[83] http://www.gyve.org/
[84] http://www.hp.com/
[85] http://www.humboldt1.com/˜jiva/ocr/ ocr resource.htm
[86] http://www.ijg.org/
[87] http://www.imagemagick.org/
[88] http://www.inforamp.net/˜poynton
[89] http://www.inforamp.net/˜poynton
[90] http://www.intl-light.com/handbook/index.html
[91] http://www.itl.nist.gov/iaui/894.03/doc/doc.html
[92] http://www.jpeg.org/JPEG2000.htm
[93] http://www.jpeg.org/public/jbighomepage.htm
[94] http://www.jpeg.org/public/jpeghomepage.htm
[95] http://www.kde.org/
169
170
[96] http://www.kodak.com/cgi-bin/webCatalog.pl?product=KODAK+PROFESSIONAL+Q60+Targets&cc=US&lc=en
[97] http://www.koffice.org/
[98] http://www.koffice.org/kontour/
[99] http://www.lcdf.org/˜eddietwo/type/
[100] http://www.levien.com/gimp/gcmm.html
[101] http://www.levien.com/gnome/print-arch.html
[102] http://www.libmng.com/
[103] http://www.libpng.org/
[104] http://www.libpng.org/pub/png/apps/pnmtopng.html
[105] http://www.libtiff.org/
[106] http://www.littlecms.com/
[107] http://www.littlecms.com/iphoto/profiles.htm
[108] http://www.lysator.liu.se/˜alla/dia/dia.html
[109] http://www.microsoft.com/
[110] http://www.mozilla.org/
[111] http://www.netem.cz/article.php?sid=579&mode=nested&order=0
[112] http://www.netscape.com/
[113] http://www.netspace.net.au/˜mheath/ttf2pt1/
[114] http://www.ntlug.org/˜ccox/impress/
[115] http://www.openoffice.org/
[116] http://www.pantone.com/
[117] http://www.pdflib.com/jpeg2ps/index.html
[118] http://www.photo.net/
[119] http://www.photo.net/photo/edscott/vis00010.htm
[120] http://www.povray.org/
[121] http://www.pstoedit.net/
[122] http://www.root.cz/clanek.phtml?id=130
[123] http://www.root.cz/clanek.phtml?id=785
[124] http://www.root.cz/photos/grafika/black.ps
[125] http://www.root.cz/photos/grafika/blue.ps
[126] http://www.root.cz/photos/grafika/path2ps.awk
[127] http://www.root.cz/photos/grafika/pdf2eps
[128] http://www.root.cz/photos/grafika/printerpdf.ps
ODKAZY
ODKAZY
[129] http://www.root.cz/photos/grafika/profily.fig
[130] http://www.root.cz/photos/grafika/profily.txt
[131] http://www.root.cz/photos/grafika/psscreengrid.ps
[132] http://www.root.cz/photos/grafika/psscreenline.ps
[133] http://www.root.cz/photos/grafika/psscreenrand.ps
[134] http://www.root.cz/photos/grafika/psscreensuper2.ps
[135] http://www.root.cz/photos/grafika/psscreentest.sh
[136] http://www.root.cz/photos/grafika/psscreenthres.ps
[137] http://www.root.cz/photos/grafika/psscreen15d.ps
[138] http://www.root.cz/photos/grafika/psscreen25.ps
[139] http://www.root.cz/photos/grafika/recodeEC
[140] http://www.root.cz/photos/grafika/telefon.afm
[141] http://www.root.cz/photos/grafika/telefon.eps
[142] http://www.root.cz/photos/grafika/telefon.gsf
[143] http://www.root.cz/photos/grafika/telefon.ps
[144] http://www.root.cz/photos/grafika/telefon r.ps
[145] http://www.root.cz/photos/grafika/transferapx.ps
[146] http://www.root.cz/photos/grafika/transferg22.ps
[147] http://www.root.cz/photos/grafika/vysehrad.curves
[148] http://www.scarse.org/
[149] http://www.suse.cz/
[150] http://www.trilon.com/xv/
[151] http://www.urwpp.de/english/home.html
[152] http://www.wvware.com/libwmf.html
[153] http://www.w3.org/Graphics/Color/sRGB.html
[154] http://www.w3.org/TR/SVG/
[155] http://www.xfig.org/
[156] http://www.xsane.org/
[157] http://www.3dwm.org/
[158] http://www.4colorvision.com/standeye.htm
[159] mailto:[email protected]
171

Podobné dokumenty

Inovace bakalářského studijního oboru Aplikovaná chemie

Inovace bakalářského studijního oboru Aplikovaná chemie Filosofie státní kontrolyPřenositelnost výroby léčivých přípravků • .doc – VELKÉ problémy, na jiném PC může vypadat jinak, způsobuje šílenství (docx – zlepšení) • PDF – profesionální programy umožň...

Více

Radek Fiala

Radek Fiala Správa barev (Color management) ICC profil obsahuje informace nutné pro transformaci mezi barvovým prostorem zařízení (CIE XYZ, CIE L*a*b*, RGB, HSV, HLS, stupně šedé, CMY, CMYK, 2 barvy, 3 barvy....

Více

Uživatelská příručka

Uživatelská příručka Řešení problémů s tiskem.....................................................................................................................275 Řešení problémů s kopírováním..........................

Více

Kancelářské balíky

Kancelářské balíky # uživatel dostane spoustu věcí, které nepotřebuje a jen mu překáží # vnucují určitý styl práce

Více

Souhrnný přehled Publikací CIE

Souhrnný přehled Publikací CIE pozorovatelů zabývajících se úkoly s význačnými vizuálními prvky a popisuje fakta použita při stanovení každé fáze modelu. Publikace 19.22 sumarizuje model a stanovuje doporučení pro jejich aplikac...

Více

lightbox

lightbox zdroje světla mají často nevhodnou barevnou teplotu bílého světla a lidský organismus je považuje za nepřirozené. Naštěstí dovedeme teplotu světla měřit a proto víme, že hodnota 5.000° Kelvina se v...

Více

Barvy

Barvy průhlednosti spolu s informací o barvách. Povoluje alfa směšování, prolínání obrazu - vrstvení (ve formátu PNG). RGBA není jedinou metodou průhlednosti v grafice, podívejte se na průhlednost („tran...

Více