COMPUTERWORLD
Specializovan² t²denφk o v²poΦetnφ technice
o Internetu
(CW 4/97)

PNG -- nov² grafick² formßt nejen pro Web

Ji°φ Kosek ml.

P°i sv²ch toulkßch Webem jste jist∞ narazili na mno₧stvφ obrßzk∙. P°evß₧nß v∞tÜina z nich byla ve formßtu GIF nebo JPEG -- to je tφm, ₧e ve standardech definujφcφch jazyk pro tvorbu webovsk²ch strßnek je doporuΦeno pou₧φvßnφ prßv∞ t∞chto dvou formßt∙. To se vÜak brzy zm∞nφ, proto₧e 1. °φjna vydalo konsorcium W3C jako svΘ doporuΦenφ popis novΘho formßtu grafick²ch soubor∙ PNG (Portable Network Graphics).

Jak ji₧ ze strßnek CW mo₧nß vφte, W3C konsorcium je organizacφ, jejφmi₧ Φleny jsou p°ednφ firmy, kterΘ se pohybujφ v oblasti informaΦnφch a komunikaΦnφch technologiφ. Prßv∞ toto konsorcium se starß o koordinaci v²voje a standardizaci nejpopulßrn∞jÜφ internetovΘ slu₧by World Wide Web.

Jist∞ oprßvn∞n∞ vßs napadne: proΦ pot°ebujeme dalÜφ grafick² formßt? To se vßm pokusφm oz°ejmit ve zbytku Φlßnku, kde se seznßmφme s nejd∙le₧it∞jÜφmi vlastnosti PNG (Φti ping) a porovnßme je s mo₧nostmi souΦasn∞ pou₧φvan²ch grafick²ch formßt∙ GIF a JPEG.

PNG je nßhradou za GIF

Ji₧ zkraje si musφme °φci, ₧e PNG nenφ zam²Ülen jako nßhrada nebo alternativa k JPEG. JPEG je grafick² formßt, kter² pou₧φvß ztrßtovou kompresi, tj. obrßzek ulo₧en² v souboru je troÜku odliÜn² od p∙vodnφho obrßzku. Za takto zaplacenou da≥ zφskßme mnohem lepÜφ kompresnφ pom∞ry. Zm∞ny oproti originßlu u soubor∙ JPEG poznßme zejmΘna na obrßzcφch, kterΘ obsahujφ n∞jakΘ pravidelnΘ geometrickΘ ·tvary, nap°. obrßzky vzniklΘ raytracingem -- pro tyto objekty je pou₧itφ JPEGu nevhodnΘ, proto₧e dochßzφ k velkΘmu zkreslenφ p∙vodnφ informace. Naproti tomu na fotografii rozkvetlΘ louky ani nepoznßme, ₧e se n∞jakΘ informace z obrßzku vytratily -- formßt JPEG vyu₧φvß nedokonalostφ lidskΘho oka k tomu, aby mohl obrßzek zmenÜit na minimum.

Vidφme tedy, ₧e JPEG se hodφ pouze pro n∞kterΘ druhy obrßzk∙ -- zejmΘna pro fotografie. (Na tomto mφst∞ se musφm omluvit za drobnou nep°esnost v pojmech -- hovo°φm o formßtu JPEG, ale ve skuteΦnosti je JPEG pouze nßzev kompresnφ metody. Obrßzky, kterΘ jsou ulo₧eny v souborech s p°φponou jpg nebo jpeg, jsou ve formßtu JFIF, kter² vyu₧φvß kompresnφ metodu JPEG. Mezi ve°ejnostφ se vÜak zkratka JPEG za₧ila i pro oznaΦenφ formßtu souboru.)

Formßt JPEG podporuje TrueColor obrßzky, ale jak jsme si ji₧ °ekli, je nevhodn² nap°. pro obrßzky vzniklΘ raytracingem. Tyto obrßzky v∞tÜinou obsahujφ takΘ velkΘ mno₧stvφ barev a pro svΘ ulo₧enφ vy₧adujφ formßt, kter² podporuje TrueColor. GIF bohu₧el takov²mto formßtem nenφ, proto₧e podporuje obrßzky maximßln∞ s 256 barvami. Vidφme, ₧e zde vznikß mezera, kterou je pot°eba n∞jak zaplnit.

K dalÜφm nev²hodßm GIFu pat°φ skuteΦnost, ₧e je patentovßn a v²vojß°i softwaru musφ platit poplatky za pou₧φvßnφ formßtu GIF ve sv²ch programech.

Formßt PNG je tedy zam²Ülen jako nßhrada GIFu. Zahrnuje v sob∞ nßsledujφcφ vlastnosti GIFu:

* obrßzky s barevnou paletou a₧ do 256 barev;
* soubor m∙₧e b²t zapisovßn i Φten sΘriov∞ -- to je v²hodnΘ nap°. p°i pomalΘm p°enosu obrßzk∙ pomocφ modemu;
* progresivnφ zobrazovßnφ -- obrßzek s ni₧Üφm rozliÜenφm je zobrazen dlouho p°edtφm, ne₧ po sφti dorazφ data celΘho obrßzku, zobrazenφ je navφc pr∙b∞₧n∞ zjem≥ovßno;
* transparentnost -- Φßsti obrßzku mohou b²t definovßny jako pr∙hlednΘ a tφm lze vytvo°it efekt nepravo·hl²ch obrßzk∙;
* do souboru mohou b²t ulo₧eny dopl≥ujφcφ informace -- nap°. texty;
* nezßvislost na hardwaru a softwarovΘ platform∞;
* efektivnφ bezztrßtovß komprese.

VylepÜenφ PNG oproti GIFu

Krom∞ toho, ₧e PNG zahrnuje vlastnosti, dφky kter²m se GIF stal velice oblφben², spl≥uje PNG i nßroΦnΘ po₧adavky dneÜnφ doby, kterß se nese ve znamenφ multimΘdiφ. Mezi nejv∞tÜφ novinky PNG pat°φ:

* obrßzky TrueColor s a₧ 48bitovou hloubkou;
* obrßzky s odstφny Üedi s a₧ 16bitovou hloubkou;
* ·pln² alfa-kanßl;
* informace o gama-korekci obrazu -- to umo₧≥uje zobrazenφ obrßzku se sprßvn²m jasem a kontrastem nezßvisle na pou₧itΘm za°φzenφ;
* pom∞rn∞ spolehlivß detekce poruÜenφ souboru;
* rychlejÜφ zobrazenφ prvnφho nßhledu obrßzku ne₧ GIF.

Ne nepodstatnou v²hodou PNG je to, ₧e nenφ chrßn∞n ₧ßdn²m patentem a m∙₧e b²t proto voln∞ pou₧φvßn.

Kompresnφ metody pou₧itΘ v PNG dosahujφ Φasto lepÜφch v²sledk∙ ne₧ GIF a navφc majφ jeÜt∞ jednu zajφmavou vlastnost -- jsou nesymetrickΘ. To znamenß, ₧e komprese obrßzku zabere dΘle Φasu na ·kor rychlejÜφ dekomprese -- to je na Webu v²hodnΘ, proto₧e zde je obrßzek jednou vytvo°en autorem strßnky a potΘ je mnohokrßt naΦφtßn u₧ivateli.

Hitem poslednφho roku na Webu jsou r∙znΘ vyhledßvacφ stroje. SouΦasnΘ formßty grafick²ch soubor∙ v sob∞ neobsahovaly textovou informaci, kterou by Ülo n∞jak jednotn∞ interpretovat a pou₧φt p°i vyhledßvßnφ. V tomto sm∞ru p°inßÜφ PNG dalÜφ novinku. Krom∞ u₧ivatelsky definovan²ch textov²ch polφ jsou standardn∞ k dispozici tato pole:


Title - Nßzev obrßzku
Author - JmΘno tv∙rce obrßzku
Description - Popis obrßzku
Copyright - Informace o copyrightu
Creation Time - ╚as vytvo°enφ obrßzku
Software - Identifikace programu, kter² obrßzek vytvo°il
Disclaimer - PouΦenφ o autorsk²ch prßvech
Warning - Varovßnφ o obsahu obrßzku
Source - Za°φzenφ pou₧itΘ pro vytvo°enφ obrßzku
Comment - Komentß° k obrßzku


PNG budoucnost?

Podle vlastnostφ PNG m∙₧eme jist∞ tvrdit, ₧e to je velmi pokrokov² grafick² formßt. Historie nßs vÜak ji₧ pouΦila, ₧e se novinky, i kdy₧ jsou dokonalΘ, ne v₧dy ujmou. Ve prosp∞ch PNG vÜak hovo°φ mnoho faktor∙. Za prvΘ PNG nenφ ·plnß novinka. I kdy₧ svΘ doporuΦenφ vydalo W3C a₧ v °φjnu letoÜnφho roku, je definitivnφ popis formßtu PNG k dispozici ji₧ vφce ne₧ rok a p∙l a mnoho grafick²ch program∙ jej podporuje (na letoÜnφm Invexu m∞ p°ekvapilo, ₧e PNG je podporovßn i v p∙vodnφm ΦeskΘm grafickΘm editoru Callisto).

Pon∞kud horÜφ situace je na scΘn∞ prohlφ₧eΦ∙. Z t∞ch znßm∞jÜφch pln∞ podporujφ PNG pouze Mosaic, Amaya a Arena (poslednφ dva jsou vyvφjenΘ v rßmci W3C konsorcia).

Navigator a Explorer obsahujφ podporu PNG jen ΦßsteΦn∞ -- pomocφ plug-in modul∙ a nestandardnφch prvk∙ jazyka HTML. Vzhledem k tomu, ₧e Netscape a Microsoft jsou Φleny W3C, je vÜak velmi pravd∞podobnΘ, ₧e nejnov∞jÜφ verze jejich prohlφ₧eΦ∙ budou podporu PNG zahrnovat.

Druh²m faktorem, kter² mluvφ pro PNG, je jeho pozitivnφ p°ijetφ velk²mi softwarov²mi firmami vΦetn∞ Microsoftu. Jestli₧e chce MS ve svΘm Office 97 pou₧φt PNG jako st∞₧ejnφ rastrov² grafick² formßt, mß PNG jist∞ zelenou. Vzpome≥me si, co prohlaÜoval MS p°ed rokem. Tehdy uvolnil tiskovΘ zprßvy o tom, ₧e v nov²ch verzφch produkt∙ bude nßpov∞da zalo₧ena na HTML. Ani ne rok potom jsou vÜechna CD s propagaΦnφmi i technick²mi informacemi, kterΘ vßm poskytnou mnohΘ firmy, zpracovßna prßv∞ v jazyce HTML.

DalÜφ informace o PNG naleznete na serveru W3C: http://www.w3.org nebo na domovskΘ strßnce PNG: http://quest.jpl.nasa.gov/PNG.


SlovnφΦek pojm∙

alfa-kanßl

Tφmto pojmem se oznaΦujφ Φßsti obrßzk∙, kterΘ jsou do jistΘ mφry pr∙hlednΘ. GIF umo₧≥uje pouze ·plnou pr∙hlednost. PNG nabφzφ alfa-kanßl. To znamenß, ₧e u ka₧dΘho bodu obrßzku m∙₧e b²t urΦeno, z kolika procent je pr∙hledn². 100% pr∙hledn² bod je transparentnφ stejn∞ jako v GIFu. 0% pr∙hledn² bod je vlastn∞ ·pln∞ nepr∙hledn². Jinß velikost pr∙hlednosti zp∙sobφ, ₧e pod transparentnφm bodem vφce Φi mΘn∞ prosvφtß pozadφ obrßzku.

gama-korekce

Tento ·daj specifikuje parametr jistΘ korekΦnφ funkce, kterß je ve tvaru: v²stup=vstupgama. Tato funkce platφ nap°. pro obrazovku, kde se nap∞tφ p°evßdφ na intenzitu svitu jednotliv²ch bod∙ obrazovky nebo pro scanner, kde probφhß p°esn∞ opaΦn² proces. Ka₧d² takov²to p°evod mß sv∙j vlastnφ gama-koeficient. Aby bylo podßnφ kontrastu obrßzku sprßvnΘ, je zapot°ebφ, aby v²sledn² koeficient gama, kter² zaΦφnß n∞kde u scanneru a pokraΦuje p°es editaΦnφ grafickΘ programy a₧ na obrazovku, byl roven p°ibli₧n∞ 1. Pokud je v souboru PNG ulo₧en gama-koeficient, kter² vznikl p°i tvorb∞ obrßzku, a prohlφ₧eΦ znß gama-koeficient obrazovky, m∙₧e upravit kontrast obrßzku tak, aby v²sledek vypadal co nejv∞rn∞ji -- tΘto ·prav∞ se °φkß prßv∞ gama-korekce.

barevnß hloubka

NejΦast∞ji se udßvß se v bitech na pixel. Znamenß to, kolik bit∙ je vyhrazeno pro p°enos barevnΘ informace o jednom bodu. Je-li barevnß hloubka n, pak poΦet r∙zn²ch barev pro jeden bod je 2n.


Druhy obrßzk∙ podporovanΘ v PNG

* obrßzky s 2, 4, 16, 256, 65 536 odstφny Üedi
* obrßzky TrueColor -- s hloubkou 24 nebo 48 (!) bit∙
* obrßzky s barevnou paletou o velikosti 2, 4, 16 nebo 256 polo₧ek -- (jednotlivΘ polo₧ky palety jsou definovßny jako trojice 8bitov²ch intenzit slo₧ek R, G a B)
* obrßzky s 256 nebo 65 536 odstφny Üedi a s alfa-kanßlem
* 24- nebo 48bitovΘ obrßzky TrueColor s alfa-kanßlem


"Jsme p°esv∞dΦeni, ₧e PNG nabφzφ v souΦasnosti nejlepÜφ bezztrßtov² formßt pro grafick² design Webu. T∞Üφ nßs, kdy₧ vidφme, jak naÜi ΦlenovΘ p°ijφmajφ nov² formßt a pomßhajφ mu stßt se pr∙myslov²m standardem."

-- Tim Berners-Lee, °editel konsorcia W3C


"Microsoft Office 97 pou₧φvß PNG jako nativnφ bezztrßtov² grafick² formßt. PNG nßm umo₧nil drasticky snφ₧it velikost soubor∙ s grafikou a umo₧nil nßm implementovat transparentnost v naÜφ novΘ komponent∞ OfficeArt. Proto₧e je PNG mal² a na platform∞ nezßvisl² formßt, umo₧≥uje u₧ivatel∙m Officu jednoduchou v²m∞nu grafick²ch dokument∙ po celΘm Webu."

-- Jon DeVaan, vφceprezident v²voje Office, Microsoft Corporation


| <<< | CW o Internetu | COMPUTERWORLD | IDG CZ homepage |