Portable Network Graphics: Porovnání verzí
→JPEG: aktualizace (dle kapitoly Historie a vývoj) a zestručnění věty o Exif |
+kapitoly o chuncích; -zbytečná věta o nepodporování CMYK; další opravy a úpravy |
||
Řádek 37: | Řádek 37: | ||
}} |
}} |
||
'''PNG''' (oficiální výslovnost „ping“, ''Portable Network Graphics'', česky ''přenosná síťová grafika'') je [[grafický formát]] určený pro [[bezeztrátová komprese|bezeztrátovou kompresi]] [[rastrová grafika|rastrové grafiky]]. Byl vyvinut jako zdokonalení a náhrada formátu [[GIF]], který byl [[patent]]ově chráněný ([[LZW]] [[algoritmus]]), dnes jsou patenty prošlé. PNG nabízí podporu 24 [[bit]]ové [[barevná hloubka|barevné hloubky]], nemá tedy jako GIF omezení na maximální počet 256 barev současně. PNG tedy do jisté míry nahrazuje GIF, nabízí více barev a lepší kompresi (algoritmus [[Deflate]] + filtry). Navíc obsahuje osmibitovou průhlednost (tzv. [[alfa kanál]]), to znamená, že obrázek může být v různých částech různě průhledný (tzv. [[RGBA]] barevný model). Nevýhodou PNG oproti GIF je praktická nedostupnost jednoduché [[animace]], pro kterou sice existují 2 návrhy [[APNG]] a [[MNG]], které se ale zatím neprosadily. PNG se stejně jako formáty [[GIF]] a [[JPEG]] používá na [[Internet]]u. |
'''PNG''' (oficiální výslovnost „ping“, ''Portable Network Graphics'', česky ''přenosná síťová grafika'') je [[grafický formát]] určený pro [[bezeztrátová komprese|bezeztrátovou kompresi]] [[rastrová grafika|rastrové grafiky]]. Byl vyvinut jako zdokonalení a náhrada formátu [[GIF]], který byl [[patent]]ově chráněný ([[LZW]] [[algoritmus]]), dnes jsou patenty prošlé. PNG nabízí podporu 24 [[bit]]ové [[barevná hloubka|barevné hloubky]], nemá tedy jako GIF omezení na maximální počet 256 barev současně. PNG tedy do jisté míry nahrazuje GIF, nabízí více barev a lepší kompresi (algoritmus [[Deflate]] + filtry). Navíc obsahuje osmibitovou průhlednost (tzv. [[alfa kanál]]), to znamená, že obrázek může být v různých částech různě průhledný (tzv. [[RGBA]] barevný model). Nevýhodou PNG oproti GIF je praktická nedostupnost jednoduché [[animace]], pro kterou sice existují 2 návrhy [[APNG]] a [[MNG]], které se ale zatím neprosadily. PNG se stejně jako formáty [[GIF]] a [[JPEG]] používá na [[Internet]]u. |
||
Formát PNG nepodporuje systém kladení barev [[CMYK]]. |
|||
Podle [[MIME]] má PNG přidělen typ <code>image/png</code>. |
Podle [[MIME]] má PNG přidělen typ <code>image/png</code>. |
||
== Historie a vývoj == |
== Historie a vývoj == |
||
Impuls pro vytvoření formátu PNG přišel v roce [[1994]], kdy po dohodě firem Unisys a CompuServe došlo k licenčnímu zpoplatnění použití formátu GIF. Upravená licence se pak začala vztahovat nejen na velké firmy, ale i na programátory vyvíjející freeware, shareware a také programy šířené pod volnou licencí([[GNU General Public License|GPL]]). Tato politika vyvolala velkou vlnu odporu, která vyvrcholila akcí „Burn All GIFs“, které se zúčastnily jak velké softwarové firmy, tak samotní programátoři na svých soukromých stránkách. |
Impuls pro vytvoření formátu PNG přišel v roce [[1994]], kdy po dohodě firem Unisys a CompuServe došlo k licenčnímu zpoplatnění použití formátu GIF. Upravená licence se pak začala vztahovat nejen na velké firmy, ale i na programátory vyvíjející freeware, shareware a také programy šířené pod volnou licencí ([[GNU General Public License|GPL]]). Tato politika vyvolala velkou vlnu odporu, která vyvrcholila akcí „Burn All GIFs“, které se zúčastnily jak velké softwarové firmy, tak samotní programátoři na svých soukromých stránkách. |
||
16. |
[[16. leden|16. ledna]] [[1995]] firma CompuServe zahájila vývoj nového grafického formátu GIF, který měl nahradit stávající GIF. Nový formát pod názvem GIF24 neměl být zatížený patenty (změna komprimačního algoritmu), maximální počet barev měl být zvýšen z 256 na 16 milionů. |
||
Současně s vývojem GIF24, avšak ne u žádné softwarové firmy, se začalo s vývojem naprosto nového formátu, který neměl být vázán žádným patentem ani vztahem k žádné firmě a předčil by tehdejší grafické formáty (především GIF, JPEG). Původní název zněl PBF (Portable Bitmap Format), ale posléze byl změněn na PNG (Portable Network Graphics). |
Současně s vývojem GIF24, avšak ne u žádné softwarové firmy, se začalo s vývojem naprosto nového formátu, který neměl být vázán žádným patentem ani vztahem k žádné firmě a předčil by tehdejší grafické formáty (především GIF, JPEG). Původní název zněl PBF (Portable Bitmap Format), ale posléze byl změněn na PNG (Portable Network Graphics). |
||
* [[1. říjen|1. října]] [[1996]] – byla uvolněna verze 1.0 se standardem [[RFC]] a [[World Wide Web Consortium|W3C]]. |
* [[1. říjen|1. října]] [[1996]] – byla uvolněna verze 1.0 se standardem [[RFC]] a [[World Wide Web Consortium|W3C]]. |
||
* [[31. prosinec|31. prosince]] [[1998]] – verze 1.1, s malým počtem změn a přidáním tří nových chunků |
* [[31. prosinec|31. prosince]] [[1998]] – verze 1.1, s malým počtem změn a přidáním tří nových chunků. |
||
* [[11. srpen|11. srpna]] [[1999]] – verze 1.2, přidání jednoho speciálního chunku. |
* [[11. srpen|11. srpna]] [[1999]] – verze 1.2, přidání jednoho speciálního chunku. |
||
* [[10. listopad]]u [[2003]] – Z PNG se stává mezinárodní norma ([[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] 15948:2003). Tato verze PNG je mírně odlišná od verze 1.2, ale není zde žádný nový chunk. |
* [[10. listopad]]u [[2003]] – Z PNG se stává mezinárodní norma ([[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] 15948:2003). Tato verze PNG je mírně odlišná od verze 1.2, ale není zde žádný nový chunk. |
||
Řádek 57: | Řádek 55: | ||
== Technické detaily == |
== Technické detaily == |
||
Soubor PNG se skládá z hlavičky souboru a série chunků (datových bloků, doslova ''kusů'', ''soust'' nebo ''špalků''). |
|||
=== Hlavička souboru === |
=== Hlavička souboru === |
||
Hlavička souboru PNG má délku 8 [[Byte|bytů]] a je v každém souboru stejná. [[Šestnáctková soustava| |
Hlavička souboru (nikoliv hlavička obrazu – ta bude popsána níže) neboli magické číslo v PNG má délku 8 [[Byte|bytů]] a je v každém souboru stejná. [[Šestnáctková soustava|Hexadecimálně]] má podobu <code>89 50 4E 47 0D 0A 1A 0A</code>. |
||
{|class=wikitable |
{|class=wikitable |
||
Řádek 65: | Řádek 65: | ||
|- |
|- |
||
|89 |
|89 |
||
| |
|jedná se o byte s nejvýše nastaveným bitem; detekce podpory 8bitového přenosu dat |
||
|- |
|- |
||
|50 4E 47 |
|50 4E 47 |
||
| |
|řetězec „'''PNG'''“ kódovaný v [[ASCII]]; slouží k identifikaci souborového formátu |
||
|- |
|- |
||
|0D 0A |
|0D 0A |
||
|(CR LF) [[Nový řádek| |
|(CR LF) [[Nový řádek|konec řádky]] v [[DOS]]u kódovaný v [[ASCII]]; detekce náhrady za jinou sekvenci |
||
|- |
|- |
||
|1A |
|1A |
||
| |
|byte zastavující výpis souboru v [[DOS]]u |
||
|- |
|- |
||
|0A |
|0A |
||
| |
|v [[Unix|UNIXu]] detekce konce přenosu (LF) |
||
|} |
|} |
||
=== |
=== Chunky === |
||
Každý chunk zprostředkovává jistou informaci o obrazu nebo metadatech. Chunky deklarují sebe jako „rozhodující“ nebo „pomocné“. Struktura chunku je zvolena tak, aby dovolovala slučitelnost obrazů PNG se staršími verzemi. |
|||
Každý chunk se skládá ze čtyř částí: délky (4 byty), typu/názvu (4 byty), samotných dat a [[Cyklický redundantní součet|kontrolního součtu]] (4 byty). |
|||
⚫ | |||
==== Typy chunků ==== |
|||
⚫ | První znak signalizuje, zda je chunk rozhodující |
||
⚫ | |||
⚫ | |||
Druhý znak informuje, zda je chunk „veřejný“ (jedná se o jednoúčelový chunk) nebo „privátní“ (není standardizován). Velké písmeno značí veřejný a malé privátní chunk. To zajistí, že veřejný a privátní znak chunku se nemohou nikdy vzájemně střetnout. |
* Druhý znak informuje, zda je chunk „veřejný“ (jedná se o jednoúčelový chunk) nebo „privátní“ (není standardizován). Velké písmeno značí veřejný a malé privátní chunk. To zajistí, že veřejný a privátní znak chunku se nemohou nikdy vzájemně střetnout. |
||
⚫ | |||
⚫ | * Čtvrtý znak signalizuje, jestli je chunk bezpečný ke kopírování pomocí editorů, které ho nerozeznají. Je-li čtvrtý znak malé písmeno, chunk může být bezpečně kopírován bez ohledu na rozsah modifikací souboru. Je-li čtvrtý znak velké písmeno, může být kopírován, jen pokud se modifikace nedotýkají žádných kritických chunků. |
||
===== Rozhodující chunky ===== |
|||
⚫ | |||
* <code>IHDR</code> představuje hlavičku obrazu (nikoliv hlavičku souboru – ta byla popsána výše). Obsahuje (v tomto pořadí) šířku obrazu (4 byty), výšku obrazu (4 byty), bitovou hloubku (1 byte), typ kódování barev (1 byte), metodu komprese (1 byte), metodu filtrování (1 byte) a metodu prokládání (1 byte) – celkem tedy 13 datových bytů. Musí být prvním chunkem.<ref>{{Citace elektronického periodika |
|||
| příjmení = Tišnovský |
|||
| jméno = Pavel |
|||
| titul = Anatomie grafického formátu PNG |
|||
| periodikum = Root.cz |
|||
| odkaz na periodikum = https://www.root.cz |
|||
| vydavatel = Internet Info, s.r.o. |
|||
| url = https://www.root.cz/clanky/anatomie-grafickeho-formatu-png/#k06 |
|||
| datum vydání = 2006-09-07 |
|||
| issn = 1212-8309 |
|||
| datum přístupu = 2018-06-27 |
|||
}}</ref> |
|||
* <code>PLTE</code> obsahuje [[Barevná paleta|paletu]] neboli seznam barev. Je povinný, pokud typ kódování barev (určený v IHDR) je paleta. Počet barev je mezi 1 a 256. Každá barva je uložená v [[RGB]] a zabírá 3 byty. |
|||
* <code>IDAT</code> obsahuje samotná obrazová data jakožto výstup komprese. Data mohou být rozdělena do více chunků tohoto typu, což mírně zvětšuje soubor, ale umožňuje streamování. |
|||
* <code>IEND</code> označuje konec souboru a musí být posledním chunkem. Neobsahuje datovou část, proto je v každém souboru PNG stejný. |
|||
===== Pomocné chunky ===== |
|||
⚫ | Čtvrtý znak signalizuje jestli je chunk bezpečný ke kopírování pomocí editorů, které ho nerozeznají. Je-li čtvrtý znak malé písmeno, chunk může být bezpečně kopírován bez ohledu na rozsah modifikací souboru. Je-li čtvrtý znak velké písmeno, může být kopírován jen pokud se modifikace nedotýkají žádných kritických chunků. |
||
* <code>bKGD</code> určuje výchozí barvu pozadí. Ta se má použít, pokud není jiná vhodnější volba, např. v prohlížečích obrázků (ale ne ve webových prohlížečích). |
|||
* <code>cHRM</code> nese informaci o chromatičnosti. |
|||
* <code>eXIf</code> obsahuje metadata ve formátu [[Exif]]. |
|||
* <code>gAMA</code> obsahuje gama korekci. |
|||
* <code>hIST</code> představuje histogram neboli celkový (nebo i proporcionální) počet výskytů každé barvy z <tt>PLTE</tt> v obrazu. Může usnadnit volbu barev na zařízení, které nedokáže zobrazit všechny požadované barvy. |
|||
* <code>iCCP</code> je [[Barevný profil|barevný profil ICC]]. |
|||
* <code>iTXt</code> obsahuje text s podporou [[UTF-8]], včetně anglického názvu, jazyka a názvu. Může být komprimovaný. |
|||
* <code>pHYs</code> určuje zamýšlenou fyzickou velikost pixelu a/nebo poměr horizontální a vertikální velikosti pixelu. |
|||
* <code>sBIT</code> vyjadřuje přesnost barev zdrojových dat. |
|||
* <code>sPLT</code> navrhuje paletu, pokud zařízení neumí zobrazit všechny barvy použité v obrazu. |
|||
* <code>sRGB</code> znamená, že je použitý barevný prostor [[sRGB]]. |
|||
* <code>sTER</code> je indikátor prostorového obrazu. |
|||
* <code>tEXt</code> obsahuje text ve znakové sadě [[ISO 8859-1]], včetně názvu tohoto textu. |
|||
* <code>tIME</code> obsahuje datum a čas poslední úpravy obrazu. |
|||
* <code>tRNS</code> určuje průhlednost. U obrazů s paletou obsahuje hodnoty průhlednosti jedné nebo více barev z palety. U obrazů v [[Barevná hloubka#Používané barevné hloubky|pravých barvách]] a ve stupních šedi určuje jedinou barvu, která je zcela průhledná. |
|||
* <code>zTXt</code> je podobný jako <tt>tEXt</tt>, ale text je komprimovaný. |
|||
=== Komprese === |
=== Komprese === |
Verze z 27. 6. 2018, 15:50
Přípona souboru | .png |
---|---|
Typ internetového média | image/png |
Type code | PNGf PNG |
Uniform Type Identifier | public.png |
Magické číslo | 89 50 4e 47 0d 0a 1a 0a |
Tvůrce | PNG Development Group |
První verze | 1. října 1996 |
Rozšíření | APNG, JNG a MNG |
Standard(y) | ISO 15948, IETF RFC 2083 |
Otevřený formát | ano |
Website | www.libpng.org/pub/png/ |
PNG (oficiální výslovnost „ping“, Portable Network Graphics, česky přenosná síťová grafika) je grafický formát určený pro bezeztrátovou kompresi rastrové grafiky. Byl vyvinut jako zdokonalení a náhrada formátu GIF, který byl patentově chráněný (LZW algoritmus), dnes jsou patenty prošlé. PNG nabízí podporu 24 bitové barevné hloubky, nemá tedy jako GIF omezení na maximální počet 256 barev současně. PNG tedy do jisté míry nahrazuje GIF, nabízí více barev a lepší kompresi (algoritmus Deflate + filtry). Navíc obsahuje osmibitovou průhlednost (tzv. alfa kanál), to znamená, že obrázek může být v různých částech různě průhledný (tzv. RGBA barevný model). Nevýhodou PNG oproti GIF je praktická nedostupnost jednoduché animace, pro kterou sice existují 2 návrhy APNG a MNG, které se ale zatím neprosadily. PNG se stejně jako formáty GIF a JPEG používá na Internetu.
Podle MIME má PNG přidělen typ image/png
.
Historie a vývoj
Impuls pro vytvoření formátu PNG přišel v roce 1994, kdy po dohodě firem Unisys a CompuServe došlo k licenčnímu zpoplatnění použití formátu GIF. Upravená licence se pak začala vztahovat nejen na velké firmy, ale i na programátory vyvíjející freeware, shareware a také programy šířené pod volnou licencí (GPL). Tato politika vyvolala velkou vlnu odporu, která vyvrcholila akcí „Burn All GIFs“, které se zúčastnily jak velké softwarové firmy, tak samotní programátoři na svých soukromých stránkách.
16. ledna 1995 firma CompuServe zahájila vývoj nového grafického formátu GIF, který měl nahradit stávající GIF. Nový formát pod názvem GIF24 neměl být zatížený patenty (změna komprimačního algoritmu), maximální počet barev měl být zvýšen z 256 na 16 milionů.
Současně s vývojem GIF24, avšak ne u žádné softwarové firmy, se začalo s vývojem naprosto nového formátu, který neměl být vázán žádným patentem ani vztahem k žádné firmě a předčil by tehdejší grafické formáty (především GIF, JPEG). Původní název zněl PBF (Portable Bitmap Format), ale posléze byl změněn na PNG (Portable Network Graphics).
- 1. října 1996 – byla uvolněna verze 1.0 se standardem RFC a W3C.
- 31. prosince 1998 – verze 1.1, s malým počtem změn a přidáním tří nových chunků.
- 11. srpna 1999 – verze 1.2, přidání jednoho speciálního chunku.
- 10. listopadu 2003 – Z PNG se stává mezinárodní norma (ISO/IEC 15948:2003). Tato verze PNG je mírně odlišná od verze 1.2, ale není zde žádný nový chunk.
- 3. března 2004 – ISO/IEC 15948:2004.
- 13. července 2017 – schválena podpora pro Exif[1]
Technické detaily
Soubor PNG se skládá z hlavičky souboru a série chunků (datových bloků, doslova kusů, soust nebo špalků).
Hlavička souboru
Hlavička souboru (nikoliv hlavička obrazu – ta bude popsána níže) neboli magické číslo v PNG má délku 8 bytů a je v každém souboru stejná. Hexadecimálně má podobu 89 50 4E 47 0D 0A 1A 0A
.
Byte | Význam bytu |
---|---|
89 | jedná se o byte s nejvýše nastaveným bitem; detekce podpory 8bitového přenosu dat |
50 4E 47 | řetězec „PNG“ kódovaný v ASCII; slouží k identifikaci souborového formátu |
0D 0A | (CR LF) konec řádky v DOSu kódovaný v ASCII; detekce náhrady za jinou sekvenci |
1A | byte zastavující výpis souboru v DOSu |
0A | v UNIXu detekce konce přenosu (LF) |
Chunky
Každý chunk zprostředkovává jistou informaci o obrazu nebo metadatech. Chunky deklarují sebe jako „rozhodující“ nebo „pomocné“. Struktura chunku je zvolena tak, aby dovolovala slučitelnost obrazů PNG se staršími verzemi.
Každý chunk se skládá ze čtyř částí: délky (4 byty), typu/názvu (4 byty), samotných dat a kontrolního součtu (4 byty).
Typy chunků
Typ je popsán čtyřmi znaky v ASCII s vlastností case sensitive. Rozdílnost znaků (pátý bit znaku) poskytuje možnost dešifrovat informaci o povaze chunku v případě jeho nerozeznatelnosti.
- První znak signalizuje, zda je chunk rozhodující: velké písmeno znamená rozhodující chunk, malé pak pomocný. Rozhodující chunk obsahuje informaci, která je nezbytná k načtení obrazu. Naopak jakýkoliv pomocný chunk, kterému dekodér nerozumí, může bezpečně ignorovat.
- Druhý znak informuje, zda je chunk „veřejný“ (jedná se o jednoúčelový chunk) nebo „privátní“ (není standardizován). Velké písmeno značí veřejný a malé privátní chunk. To zajistí, že veřejný a privátní znak chunku se nemohou nikdy vzájemně střetnout.
- Třetí znak musí podle specifikace PNG být velké písmeno. Je rezervovaný pro budoucí expanzi. V případě malého písmene by měl dekodér jednat s tímto chukem jako s jakýmkoliv jiným neznámým.
- Čtvrtý znak signalizuje, jestli je chunk bezpečný ke kopírování pomocí editorů, které ho nerozeznají. Je-li čtvrtý znak malé písmeno, chunk může být bezpečně kopírován bez ohledu na rozsah modifikací souboru. Je-li čtvrtý znak velké písmeno, může být kopírován, jen pokud se modifikace nedotýkají žádných kritických chunků.
Rozhodující chunky
IHDR
představuje hlavičku obrazu (nikoliv hlavičku souboru – ta byla popsána výše). Obsahuje (v tomto pořadí) šířku obrazu (4 byty), výšku obrazu (4 byty), bitovou hloubku (1 byte), typ kódování barev (1 byte), metodu komprese (1 byte), metodu filtrování (1 byte) a metodu prokládání (1 byte) – celkem tedy 13 datových bytů. Musí být prvním chunkem.[2]PLTE
obsahuje paletu neboli seznam barev. Je povinný, pokud typ kódování barev (určený v IHDR) je paleta. Počet barev je mezi 1 a 256. Každá barva je uložená v RGB a zabírá 3 byty.IDAT
obsahuje samotná obrazová data jakožto výstup komprese. Data mohou být rozdělena do více chunků tohoto typu, což mírně zvětšuje soubor, ale umožňuje streamování.IEND
označuje konec souboru a musí být posledním chunkem. Neobsahuje datovou část, proto je v každém souboru PNG stejný.
Pomocné chunky
bKGD
určuje výchozí barvu pozadí. Ta se má použít, pokud není jiná vhodnější volba, např. v prohlížečích obrázků (ale ne ve webových prohlížečích).cHRM
nese informaci o chromatičnosti.eXIf
obsahuje metadata ve formátu Exif.gAMA
obsahuje gama korekci.hIST
představuje histogram neboli celkový (nebo i proporcionální) počet výskytů každé barvy z PLTE v obrazu. Může usnadnit volbu barev na zařízení, které nedokáže zobrazit všechny požadované barvy.iCCP
je barevný profil ICC.iTXt
obsahuje text s podporou UTF-8, včetně anglického názvu, jazyka a názvu. Může být komprimovaný.pHYs
určuje zamýšlenou fyzickou velikost pixelu a/nebo poměr horizontální a vertikální velikosti pixelu.sBIT
vyjadřuje přesnost barev zdrojových dat.sPLT
navrhuje paletu, pokud zařízení neumí zobrazit všechny barvy použité v obrazu.sRGB
znamená, že je použitý barevný prostor sRGB.sTER
je indikátor prostorového obrazu.tEXt
obsahuje text ve znakové sadě ISO 8859-1, včetně názvu tohoto textu.tIME
obsahuje datum a čas poslední úpravy obrazu.tRNS
určuje průhlednost. U obrazů s paletou obsahuje hodnoty průhlednosti jedné nebo více barev z palety. U obrazů v pravých barvách a ve stupních šedi určuje jedinou barvu, která je zcela průhledná.zTXt
je podobný jako tEXt, ale text je komprimovaný.
Komprese
PNG používá bezeztrátovou kompresi se 2 základními kroky:
- Filtrování – snaha objevit běžné vzory (např. barevné pruhy, gradienty) pro zvýšení účinnosti dalšího kroku
- Komprese – využívá metodu DEFLATE (stejně jako komprimační knihovna zlib), tj. kombinaci slovníkového algoritmu LZ77 a Huffmanova kódování
Prokládání
PNG nabízí volitelné prokládání pomocí dvourozměrného sedmiprůchodového algoritmu Adam7. Jedná se o pokročilejší prokládání než jednorozměrné čtyřprůchodové prokládání u formátu GIF – umožňuje lepší zobrazení obrázku v dřívější fázi přenosu souboru, obzvlášť při použití interpolace, např. bikubické interpolace.[3]
Sedmiprůchodový algoritmus však obvykle zhoršuje kompresní poměr víc než jednodušší algoritmy.
Porovnání s jinými formáty
GIF
- GIF podporuje nejvýš 8bitovou barevnou paletu (maximálně 256 barev). PNG podporuje i 24 bitů na pixel (8 bitů na kanál) a 48 bitů na pixel (16 bitů na kanál), což umožňuje lepší podání barev, jemnější barevné přechody atd. S přidaným alfa kanálem je k dispozici až 64 bitů na pixel.
- PNG nabízí širší možnosti průhlednosti než GIF, včetně alfa kanálu.
- Ve většině případů PNG dosahuje lepšího kompresního poměru než GIF. Jen u některých malých obrázků to je naopak.
- GIF podporuje jednoduché animace. PNG sám o sobě nikoliv (podporují je odvozené, málo rozšířené formáty APNG a MNG, které byly za tím účelem vytvořeny).
- Při konverzi z PNG na GIF dochází ke ztrátě kvality v případě, že PNG obsahuje víc než 256 barev (takové snížení barevné hloubky se obvykle projeví zmenšením souboru, což může vést k mylnému závěru, že GIF má lepší kompresi).
- Prokládání v PNG umožňuje dřívější rozpoznání obsahu stahovaného obrázku než prokládání v GIF.
- Oba formáty jsou podporované širokou softwarovou základnou.
JPEG
JPEG může vytvářet menší soubory než PNG pro fotografie a fotorealistické vizualizace, protože JPEG používá ztrátovou kompresi speciálně navrženou pro fotografii. PNG má ve stejné kvalitě až 5-10× větší soubory.
PNG je naopak lepší než JPEG pro obrázky obsahující text, čárovou grafiku, čisté barevné plochy a ostré rozhraní barev. JPEG nepodporuje průhlednost (indexové barvy, alfa kanál). Tam, kde se vyskytují jak fotografické, tak grafické prvky, je potřeba se rozhodnout mezi čistým zobrazováním bezeztrátového PNG, nebo malým souborem ztrátového JPEG.
JPEG je také špatným rozhodnutím pro archivování obrázků pro další zpracování a fotomontáž. To dělá PNG vhodnějším pro ukládání dočasných fotografií vyžadujících fotomontáž. Teprve finální fotografie určená k distribuci může být uložena jako JPEG se ztrátou detailů pouze pro jednu generaci.
PNG i JPEG umožňují ukládání metadat ve formátu Exif.
Reference
- ↑ News and History of the PNG Development Group from 2017 [online]. PNG Development Group, 2017-07-13 [cit. 2018-01-23]. Dostupné online. (anglicky)
- ↑ TIŠNOVSKÝ, Pavel. Anatomie grafického formátu PNG. [[1]] [online]. Internet Info, s.r.o., 2006-09-07 [cit. 2018-06-27]. Dostupné online. ISSN 1212-8309.
- ↑ Introduction to PNG [online]. [cit. 2017-08-15]. Dostupné online. (anglicky)
Externí odkazy
- Obrázky, zvuky či videa k tématu Portable Network Graphics na Wikimedia Commons
- Porovnání formátů PNG a GIF článek na Root.cz
- Anatomie grafického formátu PNG článek na Root.cz
- PNGOUT Malý freeware program pro maximální kompresi PNG