Ot. 8. Vektorová grafika Základní popis Druhou velkou oblastí zpracování obrazu pomocí počítače kromě rastrové grafiky je vektorová grafika. Vektorový způsob zpracování obrazu je výrazně odlišný od zpracování rastrového: Obraz je definován podstatě matematicky, pomocí čar a křivek, uzavřených křivek tvořících tvary, které mohou mít definovanou výplň, předefinovaných tvarů (kružnice, elipsy, obdélníky a další s výplní nebo bez výplně). Vektorový obraz neobsahuje pixely.
Vyplněný a „drátěný model“ mlýnku („stříška“ mlýnku vybrána pro editaci)
Mnohé vektorové formáty ale mohou obsahovat část obrazu v rastrové formě. Na druhou stranu i současné rastrové editory umožňují vytvářet vektorově definované prvky a ukládat je (obvykle ovšem pouze v nativním formátu) – např. cesty v Adobe Photoshopu.
Základ vektorového zpracování grafiky 1. Souřadnicová soustava Základní prostor obrazu je definován souřadnicovou soustavou s nulou (počátkem) obvykle v některém rohu obrazu. Pomocí souřadnicové soustavy jsou určovány pozice a rozměry prvků obrazu. 0
souřadnicová soustava
150
0
pozice objektu
[30; 30]
150
1
2. Jednoduché objekty Jednotlivé prvky obrazu jsou samostatné objekty, které se vzájemně neovlivňují. Objekt obrazu je definován samostatně, nezávisí na okolí a okolních objektech, může být samostatně upravován přesouván nebo smazán. a) Nejjednodušším objektem vektorového obrazu je rovná čára, která je definována souřadnicemi počátečního a koncového bodu. 0
150
0 [15; 15]
[75; 135] 150
Např. v SVG vypadá zápis této čáry takto: <path d="M 15 15 L 75 135" style="strokewidth:5; stroke: rgb (127,127,127)"/> b) Čára může být lomená, definovaná několika body. 0
150
0 [15; 15]
[135; 15]
[75; 135] 150
V SVG kódu se zápis změní takto: <path d="M 15 15 L 75 135 L 135 15" style="stroke-width:5; stroke:rgb (127,127,127); fill:none"/> Přibyla tedy definice dalšího bodu čáry (L 135 15). V definici stylu přibyl příkaz zamezující vyplnění (fill:none), jakmile totiž obsahuje čára v svg více než dva body je automaticky vyplněna. c) Uzavřením čar (spojením s výchozím bodem) získáme tvar.
2
0
150
0 [15; 15]
[135; 15]
[75; 135] 150
V SVG: <path d="M 15 15 L 75 135 L 135 15 Z" style="stroke-width:5; stroke: rgb (127,127,127); fill:rgb (0,127,0)"/> Tímto způsobem je tedy vektorově definovaný trojúhelník, stejně lze ale definovat libovolný jiný mnohoúhelník (přibude pouze počet bodů), nebo čáru (neuzavřeme objekt). 3. Předdefinované tvary Kreslení veškerých objektů pomocí čar je ale poměrně komplikované a zdlouhavé. Další obvyklou součástí vektorového obrazu jsou tedy předdefinované tvary – především obdélník (čtverec), elipsa a kruh (a mnohé další). Obdélník je definován pozicí, šířkou a výškou. Kruh středem a poloměrem. 4. Křivky: Nejčastěji zmiňovanou, z hlediska vykreslení nejsložitější a v mnoha kresbách nejdůležitější součástí rastrových obrazů jsou ovšem křivky (tedy zakřivené čáry) které tvoří obrysy všech složitějších objektů. Základem většiny vektorových souborů jsou Bézierovy křivky definované dvěma základními body – počátkem, koncem (stejně jako libovolná jiná čára) a dvěma pomocnými (řídícími) body určujícími zakřivení.
Bezierova křivka v CDR
Objekt definovaný uzavřenou křivkou s obrysem a výplní
Dále se používají např.: Coonsouvy kubiky, spline křivky (B-spline), Fergusonovy kubiky a
3
další. . V SVG je definice například jednoduché sinusoidy:
Přehled vlastností vektorové grafiky 1. Vektorový obraz neobsahuje pixely. •
Vektorové obrazy nemají parametr rozlišení.
•
Vektorový obraz lze tedy neomezeně zvětšovat, aniž by hrozila zubatost.
•
Vektorový obraz lze tedy neomezeně zvětšovat či zmenšovat, aniž by se měnila datová velikost.
•
Datová velikost vektorového obrazu závisí na jeho složitosti, nikoli na rozměru.
•
U jednoduchých grafik je soubor obvykle menší než v rastrovém formátu.
•
Složitější obrazy mají ve vektorovém formátu větší datovou velikost, obtížně a pomalu se zpracovávají, jsou i pro uživatele nepohodlné k úpravám.
2. Popis vektorového obrazu se podobá sadě příkazů, „co a jak“ má počítač nakreslit (nakresli čáru z bodu A do bodu B). Tímto principem se vektorová data do jisté míry blíží programům. •
Program, který grafiku zobrazuje, musí kódu správně „rozumět“. To je obvykle komplikovanější než porozumění prosté mozaice pixelů rastrového obrázku. (Tj. může dojít snadněji k chybám.)
•
Pro zobrazení je třeba vektorový obraz rastrovat na pixely (monitor zobrazuje pixely). Při každém zobrazení je grafika rastrována.
3. Prvky (objekty) vektorového obrazu jsou definovány samostatně, nezávisle na okolí a mají pevně daný okraj. •
Samostatně definovaný prvek vektorového formátu lze jednoduše vybrat, přesunout a transformovat (otočit, zkosit, natáhnout, zvětšit, zmenšit…) a nijak při tom nezasáhnout do dalších částí obrazu.
•
Vektorové prvky se mohou v jedné vrstvě překrývat, aniž by se vzájemně ovlivňovali.
•
Vektorové editory disponují velkou škálou nástrojů na úpravu obrysové křivky, která
4
definuje tvar prvků. Tvar lze velmi jemně a přesně „modelovat“. •
Prvky se obvykle nemohou prolínat ani mísit s okolím. Oproti rastrovým obrazům chybí nebo jsou omezeny možnosti různého rozmazávání, prolínání, rozostřování atd.
4. Výplň objektu je určena pro celý objekt, nebo alespoň pro jeho geometricky definovanou část. •
Z toho plyne snazší práce s přímými barvami (přímo definovatelné k objektům).
•
Ale horší práce s tónovými obrazy.
5. V principu je ve vektorové formě jednodušší možnost animace (rozpohybování).
Použití vektorové grafiky Na rozdíl od rastrové grafiky, která je zaměřená na motivy se spíše fotografickým, plnobarevným a tónovým charakterem se vektorová grafika se uplatňuje nejčastěji při tvorbě základních grafických prvků, jako jsou loga, piktogramy, jednoduché obrázky (kliparty), ornamenty, šipky, nákresy, tlačítka pro webové stránky. Vektorovou grafiku volíme vždy v případech prvků, u nichž trváme na možnosti zvětšovat a zmenšovat (např. už zmíněná loga). Vektorově je definovaný i obraz většiny v počítači zpracovávaných písem – fontů. Možný je i vektorový návrh jednodušších tiskovin nebo stránek tiskoviny (např. akcidenční tiskoviny, obálky časopisů, obaly a podobně, s velkým podílem grafiky). Vektorová grafika je naprosto nezbytná pro zařízení s „vektorovým“ (čárovým) výstupem. Typickým příkladem jsou řezací plottery, které vyřezávají motiv do materiálu (signmaking = samolepky na polep aut, vyřezávání kartonu a dalších materiálů pro různé vývěsní štíty, cedule např. ve tvaru postav a další.) Vzhledem k ohraničenosti vektorových prvků je zřejmá příbuznost s pérovou kresbou a tím pádem s tiskem přímými barvami. Vektorové motivy bývají pro tento tisk vhodné. Převod na vektorový formát (vektorizace, trasování) je jedním z možných postupů přípravy motivu pro tisk přímými barvami. Nezávislost na rozlišení a velikosti způsobuje, že vektorová grafika se uplatňuje v mnoha případech velkoformátového tisku (pokud není motiv fotografický). Vzhledem k přesnému čárovému charakteru mají vektory pevné místo v technické grafice – schémata, konstrukční výkresy, designérské studie, architektura atd. Hovoříme o CAD systémech (Computer Aided Design). Dále je možné uplatnění v kartografii a jako vizuální zpracování GIS (geografický informační systém) dat.
5
Na vektorovém základě je i velká většina 3D (prostorové) grafiky (modely, objekty ve hrách, virtuální realita). Uplatňuje se i u animací.
Editory vektorové grafiky Mezi nejpoužívanějšími editory vektorových obrazů v oblasti statické 2D grafiky pro tisk a internet patří Corel Draw, Adobe Ilustrátor. Další programy: například Adobe FreeHand (dříve Macromedia), český Zoner Callisto (jednodušší a levnější) a dále: ACD Systéme Canvas, Xara, Inkscape (zaměřený na formát SVG) atd…
Typické souborové formáty Nativními formáty hlavních programů jsou: Corel: CDR, Illustrátor: AI (blízce příbuzný PDF, PS, EPS – v současnosti jde o v podstatě o PDF). Formáty PS (PostScript), EPS Encapsulated (zapouzdřený) Postskript a PDF (Portable Document Format). Skupina formátů velice podobného typu od Adobe. Pro přenos vektorové grafiky se po dlouhá léta používal nejčastěji bezproblémový EPS. Nyní je vytlačován formátem PDF. WMF – Windows MetaFile Formát (Zkratka se někdy odvozuje od MetaFile jindy od Metafile Format) je poměrně rozšířený a především značně univerzální formát který lze otevřít i vytvořit většinou základních vektorových editorů a navíc i běžnými mnoha běžnými prohlížeči obrázků. S rozvojem internetu vznikly dva vektorové formáty určené speciálně k jeho potřebám: SVG (Scalable Vector Graphic, na jehož vývoji se podílelo několik významných firem a organizací z oblasti grafiky a internetu) a VML (Vector Markup Language, vyvinutý Microsoftem, nijak výrazně se nerozšířil).
Příklady dalších souborů a programů Mimo standardní předtiskovou přípravu: Ovládací jazyky pro kreslící a řezací plottery (tedy nikoli velkoformátové tiskárny, které se občas také označují jako plottery). Např. formát PLT (HPLT) Hewlett-Packard Plotter, jazyk od firmy HP. Lze do něj exportovat z Corelu (a pravděpodobně i z dalších programů). CGM Computer Graphics Metafile – standardní ISO formát pro vektorové a složené vektorově rastrové obrázky. CGM se používá například pro technické výkresy. V technické grafice je zřejmě nejznámějším programem AutoCAD (firma Autodesk) používající soubory DWG, DXB a DXF (každý má trochu jiný účel). Technická grafika je
6
ovšem obrovská oblast a existují desítky programů a doplňků pro různé účely. Z programů pro tvorbu vektorové animace nelze nezmínit Macromedia Flash používající soubory FLA (soubor pro editaci – který „lze otevřít“) a SWF (soubor pro zobrazení, nelze editovat – ačkoli existují prostředky jak ho s určitou nepřesností převést zpět na FLA). Kromě klasické animace (jakou umožňuje např. GIF) může být flashová animace interaktivní, tj. reagovat na podměty uživatele (a navíc má vzhledem k vektorovosti mnohem menší datovou velikost). Programy a soubory pro 3D grafiku: Většina z nich používá částečně vektorový popis, který doplňuje rastrovými výplněmi.
Převod z rastrového obrazu na vektorovou grafiku Vektorizace (převod rastrového obrazu na vektorový formát) rastru je z praktického hlediska užitečná v mnoha případech, např.: V situaci kdy je výstup obrázku realizován řezáním nebo rytím (řezací plottery – samolepky na auta a podobně, gravírování atp.). V případě přípravy pro tisk přímými barvami. (Např. pro tisk sítotiskem ale i flexotiskem. Ačkoli přímé barvy lze vložit i do rastrového obrazu, je vektorizace v některých případech výhodnější.) V případě že chceme s obrazem manipulovat na vektorovém principu (například pro zvětšení jednoduchého loga v malém rozlišení je možné ho převést na vektory). Automatický postup pro převedení rastrového obrázku na vektorový se často označuje jako trasování. Vektorizují se především jednoduché grafiky. Vektorizace fotografie s přijatelným výsledkem je vždy problematická. Při maximální přesnosti vzniká příliš komplikovaná a tím obtížně upravovatelná vektorová grafika, při nižší přesnosti naopak zanikají detaily.
7