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ů:
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 0AASCII REPREZENTACE: .PNG....
Standardizace: Doporučení W3C (1996) / ISO/IEC 15948:2004
Technické specifikace
| Architektura kontejneru | Blokový binární kontejner s kontrolou CRC32 o délce 4 bajty u každého bloku |
| Komprese | Deflate (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é prostory | sRGB, Display P3, Indexovaná paleta (1 až 8 bitů), Odstíny šedi, Truecolor (24/48-bit) |
| Kanály a struktura | RGB + alfa (až 16 bitů na kanál / 64bitové RGBA) |
| Max. rozměry | 2 147 483 647 x 2 147 483 647 pixelů (4bajtová celá čísla bez znaménka) |
| Průhlednost | Plný 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ý atribut | PNG (Aktuální) | WebP | AVIF | JPEG |
|---|---|---|---|---|
| Typ komprese | Pří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ůhlednost | Plný 8bitový / 16bitový variabilní alfa kanál | Podpora pro 8bitový alfa kanál | Podpora pro 8bit / 10bit / 12bit alfa | Bez 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 textu | Vynikající bezeztrátový režim | Dobrý, ale pomalejší na kódování | Špatný (vytváří kmitavé artefakty podél ostrých hran) |
| Kompatibilita s prohlížeči | Podporová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 platformy | Podporová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
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
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.
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.
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.
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.
Převedením formátu HEIC na PNG se fotografie komprimované pomocí ztrátového HEVC transformují na široce podporované bezztrátové grafické soubory.
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í.
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í.
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.