Průhlednost v PNG souborech – jak alpha kanál ovlivňuje jejich velikost a jak na komprese PNG online

Při práci s grafikou na webu narazíte na PNG soubory výrazně větší než srovnatelné JPEG fotografie. Důvodem bývá takzvaná průhlednost. Komprese PNG online funguje na jiném principu než komprese fotografií, a alpha kanál, který průhlednost zajišťuje, hraje v celé rovnici zásadní roli. Tento článek vysvětluje, co alpha kanál přesně je, jak ovlivňuje objem dat a kde jsou praktické možnosti, jak soubory zmenšit bez ztráty průhlednosti.

Co je alpha kanál a jak vzniká

Standardní barevný obrázek pracuje se třemi kanály: červeným, zeleným a modrým (RGB). Každý pixel má v každém kanálu hodnotu od 0 do 255, která určuje jeho barvu. PNG formát přidává čtvrtý kanál, označovaný jako alpha. Ten neobsahuje informaci o barvě, ale o průhlednosti každého jednotlivého pixelu.

Hodnota alpha 0 znamená úplnou průhlednost, hodnota 255 znamená plnou neprůhlednost. Mezi těmito krajními hodnotami leží 254 stupňů poloprůhlednosti, díky nimž vznikají jemné přechody a měkké okraje, třeba u loga s rozmazaným stínem nebo u oříznuté fotografie s plynulým přechodem do průhledného pozadí.

Proč čtvrtý kanál „prodražuje“ soubor

Každý přidaný kanál znamená více dat. RGB obrázek ukládá pro každý pixel tři hodnoty, RGBA obrázek (RGB plus alpha) ukládá čtyři. Při rozlišení 1000 × 1000 pixelů to znamená rozdíl jednoho milionu dalších hodnot. PNG sice tato data komprimuje bezztrátovým algoritmem, ovšem čím komplexnější průhlednostní informace soubor obsahuje, tím hůře se komprimuje.

Plně průhledné plochy (alpha = 0 po celé ploše) se komprimují výborně, protože jde o opakující se hodnotu. Poloprůhledné přechody s různými hodnotami alpha na každém pixelu se komprimují podstatně hůře, protože data jsou různorodá a algoritmus nenajde tolik opakujících se vzorů.

Typy průhlednosti v PNG a jejich dopad na velikost

Ne každá průhlednost v PNG souboru funguje stejně. Formát rozlišuje několik přístupů, které se liší složitostí i výslednou velikostí souboru.

Binární průhlednost

Nejjednodušší varianta pracuje pouze se dvěma stavy: pixel je buď plně průhledný, nebo plně neprůhledný. Přechodové hodnoty neexistují. Tento přístup využívá formát PNG-8, který navíc pracuje s omezenou paletou nejvýše 256 barev. Soubory jsou výrazně menší než plnobarevné PNG s alpha kanálem, ovšem za cenu viditelně zubatých okrajů u zaoblených nebo organických tvarů.

Binární průhlednost dává smysl u ikon s ostrými hranami, jednoduchých piktogramů a grafických prvků, kde antialiasing není třeba.

Plná alpha průhlednost

PNG-24 a PNG-32 pracují s plným rozsahem 256 úrovní průhlednosti pro každý pixel. Výsledkem jsou hladké přechody a měkké okraje, které působí přirozeně na jakémkoliv pozadí. Za tuto kvalitu se platí výrazně větší soubor.

Pohled na to, jak různé typy obrázků reagují na kompresi, potvrzuje, že PNG-32 soubory s komplexní alpha průhledností patří mezi objemově nejnáročnější typy grafiky používané na webu.

Jak zmenšit PNG soubor bez ztráty průhlednosti

Kvantování barev jako první krok

Jednou z nejúčinnějších metod zmenšení PNG souboru s alpha kanálem je kvantování barev. Namísto plných 16 milionů barev (PNG-24) pracuje kvantizovaný soubor s omezenou paletou, typicky 64 až 256 barev, přičemž alpha kanál zůstane zachován. Vizuálně je rozdíl u mnoha typů grafiky minimální, datový úspora ovšem dosahuje 50 až 70 %.

Kvantování funguje nejlépe u plakátové grafiky, ilustrací, log a ikon. U fotografií s průhledností a jemnými barevnými přechody přináší viditelnější degradaci, takže zde je třeba výsledek vždy vizuálně ověřit.

Odstranění zbytečných metadat

PNG soubory obsahují bloky dat zvané chunks. Část z nich nese nezbytné informace o rozměrech a barevném prostoru, jiné jsou volitelné: komentáře, informace o softwaru, který soubor vytvořil, ICC profily barev nebo informace o tisku. Tyto volitelné bloky mohou přidat desítky kilobajtů k souboru, který by jinak byl výrazně menší.

Při kompresi PNG souborů určených pro web se metadata standardně odstraňují automaticky, protože prohlížeč je k zobrazení obrázku nepotřebuje. ICC profily jsou relevantní pro tisk a profesionální barevné workflow, na webu jsou zbytečnou zátěží.

Kdy přejít na jiný formát

Alpha průhlednost podporují kromě PNG i formáty WebP a AVIF. WebP s průhledností produkuje soubory typicky o 25 až 35 % menší než srovnatelné PNG-24 při zachování alpha kanálu. AVIF jde ještě dál, ovšem podpora v redakčních systémech a starších prohlížečích není tak plošná.

Pokud web obsluhuje moderní prohlížeče a CMS konverzi zvládne, přechod z PNG na WebP u průhledné grafiky představuje jeden z nejrychlejších způsobů, jak snížit datový objem bez vizuálního kompromisu.

Kde alpha kanál komplikuje kompresi nejvíce

Největší problém nastává u obrázků, kde průhledná plocha sousedí s poloprůhlednou hranou a za ní s plnobarevným obsahem. Typický příklad je fotografie osoby oříznutá z pozadí s měkkým přechodem vlasů do průhledné plochy. Takový soubor kombinuje tři různé typy dat v alpha kanálu a algoritmus bezztrátové komprese má velmi málo opakujících se vzorů, na nichž by mohl stavět.

Výsledkem je velký soubor, který přes komprimaci obrázků OptiBot online sice zmenšíte, ovšem ne tak dramaticky jako u jednoduché grafiky s binární průhledností. V takových případech je realistické očekávat úsporu 20 až 40 % namísto obvyklých 50 až 70 % u jednodušší grafiky.

Co si z toho odnést

Alpha kanál je mocný nástroj, který PNG formátu dává schopnost, již JPEG postrádá. Zároveň je to přesně ten faktor, který PNG soubory prodražuje. Porozumění tomu, jak průhlednost funguje uvnitř souboru, umožňuje rozhodnout, kdy stačí PNG-8 s binární průhledností, kdy je nezbytný plný alpha kanál a kdy je lepší přejít na WebP.

Michael Neuman