Obrázek PNG (.png)

Doporučení Standardní

Portable Network Graphics (PNG) je svobodný rastrový grafický formát souborů, který podporuje bezeztrátovou kompresi dat, indexované barvy a variabilní průhlednost alfa kanálu.

Převést PNG na JPG

Bezplatný konvertor z PNG do JPG v prohlížeči. Převeďte soubory okamžitě ve svém zařízení.

Komprese PNG online

Soukromě - soubory nikdy neopustí vaše zařízení

Kontrola a metadata

Operační systémy a analyzátory souborů identifikují soubory PNG kontrolou počáteční binární sekvence bajtů:

Vyberte nebo přetáhněte soubory sem

Soukromě - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

Podpis hlavičky na úrovni bajtů (Magic Bytes)

Operační systémy a analyzátory souborů identifikují soubory PNG kontrolou počáteční binární sekvence bajtů:

HEXADECIMÁLNÍ PODPIS (POSUN 0):

89 50 4E 47 0D 0A 1A 0A

ASCII REPREZENTACE: .PNG....

Standardizace: Doporučení W3C (1996) / ISO/IEC 15948:2004

Technické specifikace

Architektura kontejneruBlokový binární kontejner s kontrolou CRC32 o délce 4 bajty u každého bloku
KompreseDeflate (LZ77 + Huffmanovo kódování) s 5 prediktivními řádkovými filtry (None, Sub, Up, Average, Paeth)
Pořadí bajtůBig-Endian (pořadí bajtů v síti) pro délky bloků, rozměry a CRC
Barevné prostorysRGB, Display P3, Indexovaná paleta (1 až 8 bitů), Odstíny šedi, Truecolor (24/48-bit)
Kanály a strukturaRGB + alfa (až 16 bitů na kanál / 64bitové RGBA)
Max. rozměry2 147 483 647 x 2 147 483 647 pixelů (4bajtová celá čísla bez znaménka)
PrůhlednostPlný 8bitový / 16bitový variabilní kanál průhlednosti (alfa)
Streamování a progresivní načítáníAlgoritmus prokládání Adam7 v 7 průchodech umožňuje progresivní vykreslování 2D řádků

Technická srovnávací matice: PNG vs konkurence

Technický atributPNG (Aktuální)WebPAVIFJPEG
Typ kompresePřísně bezeztrátová (Deflate + 2D prediktivní filtry)Ztrátová (VP8) a bezeztrátová (VP8L)Ztrátová (AV1 intra) a bezeztrátováPřísně ztrátová (diskrétní kosinová transformace)
Alfa průhlednostPlný 8bitový / 16bitový variabilní alfa kanálPodpora pro 8bitový alfa kanálPodpora pro 8bit / 10bit / 12bit alfaBez podpory kanálu průhlednosti
Velikost souboru (fotografie)U fotografií bývají soubory větší než u ztrátových formátů; poměrná velikost se liší podle obrázku a kodéru.Může být menší než JPEG; výsledek závisí na obrázku a kodéru.Může být menší než JPEG; výsledek závisí na obrázku a kodéru.Střední, výchozí hodnota
Velikost souboru (grafika / UI)Velmi úsporný u snímků obrazovky, čárových kreseb a textuVynikající bezeztrátový režimDobrý, ale pomalejší na kódováníŠpatný (vytváří kmitavé artefakty podél ostrých hran)
Kompatibilita s prohlížečiPodporováno hlavními prohlížeči; dostupnost závisí na prohlížeči a jeho verziŠiroká podpora v řadě současných prohlížečů; pokrytí se liší podle verze a platformyPodporováno řadou současných prohlížečů; pokrytí se liší podle verze a platformyŠiroká podpora; dostupnost se liší podle produktu a verze

Běžné režimy poškození a příručka pro obnovení v hex

Prohlížeč obrázků zobrazí hlášení „Fatal error: Not a valid PNG file" nebo soubor nedokáže otevřít.

Hlavní příčina: Prvních 8 bajtů bylo pozměněno režimem přenosu ASCII (změna 0x0D 0x0A na 0x0A nebo 0x0D 0x0D 0x0A).

Obnovení: Otevřete soubor v hexadecimálním editoru a ověřte, že prvních 8 bajtů odpovídá hodnotě „89 50 4E 47 0D 0A 1A 0A". Obnovení těchto přesně 8 bajtů hlavičky často obrázek zachrání.

Nástroj pngcheck hlásí „CRC error in chunk IDAT" nebo se obrázek načte jen částečně a jeho dolní řádky jsou poškozené.

Hlavní příčina: Poškození bitů v komprimovaném datovém proudu zlib nebo neplatný kontrolní součet CRC32 v bloku IDAT.

Obnovení: Použijte příkaz pngcheck -f nebo nástroje pro obnovení proudu Deflate k přepočtu platných hodnot CRC32, případně dekomprimujte zbývající řádky až po poškozený blok.

Obrázek se v prohlížečích na počítači vykresluje správně, ale v aplikacích pro iOS se nezobrazí správně.

Hlavní příčina: Systém iOS očekává proprietární formát s prohozenými bajty CgBI od Applu nebo nestandardní bloky barevného prostoru.

Obnovení: Normalizujte obrázek pomocí příkazu „pngcrush -revert-iphone-optimizations" pro obnovení standardního pořadí RGBA podle W3C.

Bezpečnostní analýza a vektory útoků na parser

PNG podporuje mnoho operačních systémů a aplikací. Mezi bezpečnostní rizika patří vyčerpání paměti dekodéru a škodlivé pomocné bloky dat.

Známé vektory útoků

  • Nadměrně velká metadata v blocích tEXt a zTXt, která v dekodérech bez sandboxu způsobují odmítnutí služby kvůli vyčerpání paměti (OOM).
  • Zranitelnosti přetečení vyrovnávací paměti haldy ve starších vydáních knihovny libpng (např. CVE-2015-8126 v png_set_PLTE).
  • Útoky dekompresní lavinou pixelů (pixel flood), kde obrázek s malou velikostí souboru deklaruje obrovské rozměry (např. 100 000 x 100 000 pixelů).
  • Steganografická exfiltrace skrývající šifrovaná data v pomocných soukromých blocích (např. eXIf nebo vlastní typy bloků).

Doporučené bezpečnostní postupy: Před alokací vyrovnávací paměti pixelů v paměti vždy ověřte rozměry obrázku. Při nahrávání uživateli odeberte nepodstatné pomocné bloky (eXIf, tEXt) pomocí sanitizéru bezpečného z hlediska správy paměti.

Historický vývoj a milníky

2004Mezinárodně standardizováno jako ISO/IEC 15948.
1996PNG 1.0 byl publikován jako doporučení W3C.
1995Vytvořeno v diskusní skupině Usenet comp.graphics jako otevřená náhrada za formát GIF poté, co společnost Unisys začala vymáhat licenční poplatky za patent LZW.

Klíčové výhody a přednosti

  • PNG používá bezeztrátovou kompresi, takže zakódování nezměněného obrázku nezpůsobí ztrátu kompresí; úpravy nebo převod barev však mohou hodnoty pixelů změnit.
  • Hladká 8bitová alfa průhlednost umožňuje čisté splývání na složitých pozadích.
  • Bloky korekce gama a chromatičnosti zajišťují konzistentní vykreslování napříč různými monitory.

Technická omezení a nevýhody

  • Výrazně větší velikost souborů ve srovnání s moderními ztrátovými formáty jako WebP nebo AVIF u fotografického obsahu.
  • Žádná nativní podpora animace s více snímky ve standardním PNG (vyžaduje rozšíření APNG).
  • Vysoká bitová hloubka (16 bitů na kanál) vytváří obrovské nekomprimované vyrovnávací paměti pro dekódování v paměti.

Zajímavé technické drobnosti

  • 8bajtová magická hlavička byla speciálně navržena k detekci poškození konců řádků CR/LF při přenosech přes FTP.
  • Neoficiální rekurzivní akronym pro PNG zněl „PNG's Not GIF".
  • Společnost Apple používá v PNG souborech pro aplikace v iOS proprietární blok CgBI, který obrací RGBA na BGRA pro přímé vykreslování přes GPU.

Často kladené technické otázky

Proč se velikost souboru PNG někdy zvětší po uložení v editoru obrázků?

Různé softwarové sady používají odlišné úrovně komprese Deflate a heuristiky prediktivních řádkových filtrů. Programy jako Photoshop často připojují nekomprimované barevné profily, bloky metadat XMP a neoptimalizované velikosti bloků IDAT. Specializované nástroje, jako je File2File.app Compressor, přehodnocují všech 5 řádkových filtrů k dosažení minimální velikosti souboru.

Jaký je rozdíl mezi PNG-8 a PNG-24?

PNG-8 používá indexovanou paletu až 256 barev (podobně jako GIF), díky čemuž vznikají velmi malé soubory vhodné pro jednoduché ikony. PNG-24 podporuje 16,7 milionu barev (Truecolor 8 bitů na kanál), přičemž PNG-32 přidává 8bitový kanál alfa průhlednosti.

Proč má PNG 5 prediktivních řádkových filtrů?

Deflate komprimuje opakující se vzory bajtů. Protože se hodnoty pixelů na fotografiích nebo v přechodech mění postupně, PNG filtruje každý řádek (None, Sub, Up, Average, Paeth) výpočtem rozdílů mezi sousedními pixely. Tím se data přechodů transformují na řetězce bajtů blížících se nule, které se v kompresi Deflate komprimují dramaticky lépe.

Podporuje PNG barevné prostory CMYK pro komerční tisk?

Ne. Oficiální specifikace W3C PNG záměrně omezuje typy barev na odstíny šedi, indexované barvy a RGB. Profesionální tiskové postupy vyžadující CMYK musí používat formáty TIFF nebo PDF.

Související konverzní páry pro PNG

PNG do JPG

Konverze rastrových obrázků PNG do formátu JPEG zmenšuje velikost souboru pomocí ztrátové komprese, což urychluje načítání obrázků na webu a šetří úložný prostor.

JPG do PNG

Převod ztrátového rastrového obrázku JPEG na bezztrátový rastrový obrázek PNG zabraňuje dalším ztrátám kvality při opakovaném ukládání a přidává podporu průhlednosti alfa kanálu.

PNG do WEBP

Převod obrázků PNG do WebP může zmenšit velikost souboru při zachování průhlednosti; výsledek závisí na použité ztrátové či bezztrátové kompresi a obsahu obrázku.

WEBP do PNG

Převod WebP na PNG vytvoří statický obrázek pro software, který podporuje PNG; nezachová animaci WebP a neobnoví detaily ztracené při ztrátové kompresi zdroje.

HEIC do PNG

Převedením formátu HEIC na PNG se fotografie komprimované pomocí ztrátového HEVC transformují na široce podporované bezztrátové grafické soubory.

SVG do PNG

Převedením vektorových souborů SVG na rastrové obrázky PNG se škálovatelná grafika založená na kódu transformuje na mřížku s pevnými pixely pro zajištění univerzální kompatibility aplikací.

PNG do SVG

Zapouzdřete rastrové obrázky PNG do vektorového kontejneru SVG XML pro responzivní změnu velikosti na webu a integraci do vektorově kompatibilních rozvržení.

PSD do PNG

Převeďte grafiku Adobe Photoshop PSD na bezztrátové obrázky PNG s plnou průhledností alfa kanálu přímo v prohlížeči bez přenosu na server.