<meta http-equiv='pics-label' content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline EN v2.0" l gen true for "http://interval.cz" r (nz 1 vz 1 lz 1 oz 1 cz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://interval.cz" r (n 0 s 0 v 0 l 0))' />
<h2>Pr∙vodce SVG - zobrazenφ vektorovΘ grafiky v prohlφ₧eΦi Opera</h2>
<p id='prepend'>V tomto Φlßnku se podφvßme podrobn∞ji, jak to vlastn∞ je s podporou nativnφho zobrazovßnφ vektorovΘ grafiky SVG-XML v osmiΦkovΘ verzi webovΘho prohlφ₧eΦe Opera. A abychom uspokojili vÜechny "nev∞°φcφ TomßÜe", tak si rovnou pßr p°φklad∙ vyzkouÜφme.</p>
<p>O co tedy vlastn∞ jde? Budu postupn∞ probφrat nejasnosti, je₧ se objevily v diskuzi k p°edchozφmu Φlßnku. Pokusφm se p°ehledn∞ shrnout d∙le₧itß fakta a p°esn∞ vysv∞tlit, proΦ je Opera 8 skuteΦn∞ prvnφm webov²m prohlφ₧eΦem s podporou normy SVG Tiny.</p>
<h3>Kdo je vlastn∞ prvnφ?</h3>
<p>V p°edchozφm Φlßnku jsem napsal: <q>Prvnφm webov²m prohlφ₧eΦem s <strong>·plnou</strong> podporou formßtu <strong>SVG Tiny</strong> (tedy vΦetn∞ SMIL animacφ!) nenφ ani Mozilla, ani Konqueror, n²br₧... Opera!</q></p>
<p>Pro toto tvrzenφ existuje hned n∞kolik d∙vod∙. Mozilla (a Firefox) nenφ prvnφ jednoduÜe proto, ₧e implementace SVG v nφ je zatφm zoufale <a href='http://www.mozilla.org/projects/svg/status.html'>nekompletnφ</a> (<a href='podklady/hejral/1145/mozilla-status.htm'>lokßlnφ kopie</a>), to je realita, kterou nezm∞nφ ani mΘ sympatie k tomuto projektu. I o programu <a href='http://www.w3.org/Amaya/Amaya.html'>Amaya</a> jsme ji₧ psali. Tento program bohu₧el v souΦasnΘ podob∞ nenφ pou₧iteln² pro b∞₧nΘ laickΘ u₧ivatele internetu a jeho implementace SVG rovn∞₧ nenφ ·plnß. Co se t²Φe prohlφ₧eΦe <a href='http://www.opera.com/download/?ver=8.0b3'>Opera 8b3</a>, d∙kazem kvality implementace normy SVG Tiny v tomto prohlφ₧eΦi budi₧ zkouÜka na vlastnφ oΦi.</p>
<h4>Norma SVG</h4>
<p>Asi bude lΘpe, kdy₧ si nynφ p°ipomeneme, co p°esn∞ p°edstavujφ pojmy <a href='http://www.w3.org/TR/SVGMobile/'>SVG Basic (SVGB) a SVG Tiny (SVGT)</a>.</p>
<p>Oba profily byly vyvinuty jako podmno₧iny normy SVG (n∞kdy se uvßdφ tΘ₧ SVG Full) specißln∞ pro pot°eby dynamicky se rozvφjejφcφ oblasti mobilnφch poΦφtaΦov²ch a komunikaΦnφch za°φzenφ (PDA, mobily a podobn∞), kterß v souΦasnosti majφ oproti osobnφm poΦφtaΦ∙m v²razn∞ ni₧Üφ v²poΦetnφ v²kon a kapacitu pam∞ti.</p>
<p>Podle mΘho nßzoru lze rozd∞lenφ standardu SVG Full v²born∞ pou₧φt taktΘ₧ p°i programovßnφ prohlφ₧eΦ∙ - kompletnφ SVG mß obrovskΘ schopnosti, kter²m odpovφdß slo₧itost algoritm∙, je₧ je nutnΘ napsat. Oproti tomu, naprogramovat SVGT je relativn∞ snadnΘ...</p>
<p>Profil <strong>SVG Basic</strong> je subset SVG normy urΦen² primßrn∞ pro PDA - vypuÜt∞ny jsou filtry a zjednoduÜena je implementace o°ezov²ch cest.</p>
<p>V profilu <strong>SVG Tiny</strong> urΦenΘm pro mobilnφ telefony k nepodporovan²m prvk∙m p°ib²vajφ skripty, p°echody barev, v²pl≥ovΘ vzorky, pr∙hlednost, o°ezßvßnφ a maskovßnφ kompletn∞, elementy <code>tspan</code>, <code>tref</code> (z∙stßvß v podstat∞ pouze zßkladnφ <code>text</code>), CSS formßtovßnφ a symboly.</p>
<p>Jak roste v²konnost hardwaru, doÜlo ve verzi <strong>SVG Tiny 1.1</strong> k mφrnΘmu rozÜφ°enφ grafick²ch schopnostφ - p°idßna byla mimo jinΘ i pr∙hlednost (ale jen na ·rovni skupin). Rovn∞₧ schopnosti <strong>SVG Basic 1.1</strong> se pon∞kud rozÜφ°ily o n∞kterΘ filtry.</p>
<h3>Nativnφ SVG v Mozille</h3>
<p>N∞kte°φ ji₧ mo₧nß Φetli komentß° k jednomu z <a href='http://interval.cz/clanek.asp?article=3281' title='Hejral, Martin: Pr∙vodce SVG - konference SVG Open'>p°edchßzejφcφch Φlßnk∙</a> , kde se v odstavci "Nativnφ podpora ve webov²ch prohlφ₧eΦφch" a "V²slednß realita" m∙₧ete dozv∞d∞t vφce.</p>
<p>Nejv∞tÜφ mezerou projektu Mozilla SVG je v souΦasnosti p°edevÜφm absence SMIL animacφ. Pro zßjemce m∙₧e b²t zajφmavß aktußlnφ odpov∞∩ prezidentky Mozilla Foundation na p°φm² dotaz ohledn∞ podpory SVG (viz Slashdot: <a href='http://interviews.slashdot.org/interviews/05/03/22/1442200.shtml'>Mozilla Foundation Chief Mitchell Baker Replies</a>).</p>
<p>Jako polehΦujφcφ okolnost mohu v²vojß°∙m Mozilly p°iznat to, ₧e si vytyΦili pom∞rn∞ vysok² cφl, toti₧ integraci XHTML s SVG v jednom jedinΘm XML souboru (objektovΘm stromu). Vyu₧φvß se p°itom normalizovanΘho mechanizmu p°epφnßnφ jmenn²ch prostor∙ XML. Myslφm, ₧e i bez znalosti XML nßsledujφcφ p°φklad vysv∞tluje vÜe:</p>
<p>N∞co podobnΘho umφ v souΦasnosti krom SVG-Mozilly u₧ jen Amaya.</p>
<h3>Podpora SVG ze strany Microsoftu</h3>
<p>V diskusi se objevila i zmφnka o implementaci v Microsoft Internet Exploreru. Podle mn∞ znßm²ch fakt∙, o kter²ch jsem v p°edchozφch Φlßncφch rovn∞₧ ji₧ psal (viz <a href='http://interval.cz/clanek.asp?article=3281' title='Hejral, Martin: Pr∙vodce SVG - konference SVG Open'>"Desktop SVG" a "XAML"</a>), zodpov∞dn∞ prohlaÜuji, ₧e dotyΦnß firma, bohu₧el, s nejvyÜÜφ pravd∞podobnostφ SVG v dalÜφ generaci MSIE (OS Longhorn) podporovat nebude. D∙vody, kter²mi to jejφ lidΘ vysv∞tlujφ, jsou sice pon∞kud nesmyslnΘ, ale nenφ to poprvΘ, co n∞co podobnΘho v poΦφtaΦovΘ bran₧i za₧φvßme.</p>
<p>P°edevÜφm znovu opakuji: <strong>"Ano, Opera 8 skuteΦn∞ umφ vykreslit vÜechny grafickΘ a animaΦnφ prvky obsa₧enΘ v norm∞ SVG Tiny 1.1."</strong> Ne₧ budete Φφst nßsledujφcφ odstavce, jeÜt∞ jednou tedy p°ipomφnßm definici SVG Tiny, uvedenou v²Üe v tomto textu.</p>
<p>Omlouvßm se Φtenß°i, kter² v diskusi k p°edchozφmu Φlßnku p°irovnßvß betaverzi Opery 8 k v²vojovΘmu buildu Mozilly, ale musφm b²t zßsadn∞ proti. Implementace SVG v projektu Mozilla, jak u₧ jsem zmφnil v²Üe, je v souΦasnosti ·pln∞ n∞kde jinde, zatφmco Opera 8 ji₧ nynφ disponuje prov∞°en²m zobrazovacφm jßdrem firmy Ikivo s implementacφ celΘ normy SVG Tiny 1.1.</p>
<p>Co se t²Φe nestability Opery 8b3 - skuteΦn∞ obΦas dochßzφ k pßd∙m programu - t²kß se to p°edevÜφm animacφ, kterΘ vyu₧φvajφ prvky mimo SVG Tiny (jako t°eba textury, o°ezßvßnφ, maskovßnφ). To snad lze betaverzi odpustit. N∞kterΘ funkΦnφ animace z naÜeho kurzu:</p>
<p>Tato <a href='podklady/hejral/1145/tiny-letter-animation.svg'>animace pφsmenek</a>, kterou ji₧ znßte z jednoho Φlßnku naÜeho <a href='http://interval.cz/serial.asp?serial=76' title='Interval.cz: Kurz SVG - tvorba vektorovΘ grafiky v XML'>v²ukovΘho serißlu SVG</a>, p∙vodn∞ obsahovala nekompatibilnφ prvek <code>tspan</code> a pr∙hlednosti - to vÜe jsem odstranil a nahradil prvky <code>text</code> bez pr∙hlednosti.</p>
<h3>Specifikace SVG Tiny a Basic podrobn∞</h3>
<p>Specißln∞ pro Φtenß°e Intervalu jsem jeÜt∞ sestavil p°ehlednou tabulku, je₧ podrobn∞ji ukazuje, kterΘ vlastnosti SVG jsou vypuÜt∞ny v podmno₧inßch SVGT a SVGB. Upozor≥uji, ₧e v²Φet nenφ zcela vyΦerpßvajφcφ, obsahuje to, co jsem pova₧oval za nejd∙le₧it∞jÜφ. ┌plnou informaci naleznete samoz°ejm∞ <a href='http://www.w3.org/TR/SVGMobile/'>v originßlnφ specifikaci W3C</a>.</p>
<div class='table'>
<table cellspacing='0'>
<tr><th>VypuÜt∞nΘ vlastnosti SVG v profilech SVG Tiny 1.1 a Basic 1.1</th><th>SVG Basic</th><th>SVG Tiny</th></tr>
<span class='comment'>* I kdy₧ SVGT neumφ symboly, p°esto m∙₧ete prvky pomocφ "use" pou₧φt vφcenßsobn∞ (pokud je odkazovan² prvek animovan², m∞ly by se samoz°ejm∞ pohybovat i vÜechny jeho instance).</span>
<br /><span class='comment'>** P°φkaz "path" je podporovßn mimo vykreslovßnφ eliptick²ch v²seΦφ ("A", "a").</span>
<br /><span class='comment'>*** Nelze se odkazovat na Φßst (v²°ez) SVG grafiky.</span>