PNG-dokumentum (.png)
W3C-ajánlás SzabványA Portable Network Graphics (PNG) szabadalommentes rasztergrafikus fájlformátum, amely támogatja a veszteségmentes adattömörítést, az indexelt színeket és a változó alfacsatorna-átlátszóságot.
PNG konvertálása erre: JPG
Ingyenes, böngészőben használható PNG-konverter JPG formátumba. A fájlokat azonnal konvertálhatja az eszközén.
PNG tömörítése online
Privát - a fájlok soha nem hagyják el az eszközét
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PNG fájlokat:
Bájtszintű fejlécaláírás (fájlazonosító bájtok)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PNG fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
89 50 4E 47 0D 0A 1A 0AASCII ÁBRÁZOLÁS: .PNG....
Szabványosítás: W3C-ajánlás (1996) / ISO/IEC 15948:2004
Műszaki specifikációk
| Konténer architektúra | Blokkalapú bináris tároló, blokkonkénti, 4 bájtos CRC32-ellenőrzéssel |
| Tömörítés | Deflate (LZ77 + Huffman-kódolás) 5 prediktív, soronként alkalmazott szűrővel (None, Sub, Up, Average, Paeth) |
| Bájtsorrend | Nagy bájtsorrend (nagy bájtsorrendű / hálózati bájtsorrend) a blokkhosszak, méretek és CRC-k tárolásához |
| Színterek | sRGB, Display P3, Indexelt paletta (1-8 bites), Szürkeárnyalatos, Valódi színes (24/48 bites) |
| Csatornák és struktúra | RGB + alfa (legfeljebb 16 bit csatornánként / 64 bites RGBA) |
| Max. méretek | 2 147 483 647 x 2 147 483 647 képpont (4 bájtos előjel nélküli egész számok) |
| Átlátszóság | Teljes, változó átlátszóságú, 8 vagy 16 bites alfacsatorna |
| Streaming és progresszív | Az Adam7 7 menetes váltottsoros algoritmusa lehetővé teszi a 2D képsorok fokozatos megjelenítését |
Műszaki összehasonlító mátrix: PNG vs. versenytársak
| Technikai attribútum | PNG (Jelenlegi) | WebP | AVIF | JPEG |
|---|---|---|---|---|
| Tömörítési típus | Szigorúan veszteségmentes (Deflate + 2D prediktív szűrők) | Veszteséges (VP8) és veszteségmentes (VP8L) | Veszteséges (AV1 intra) és veszteségmentes | Szigorúan veszteséges (Diszkrét Koszinusz Transzformáció) |
| Alfaátlátszóság | Teljes 8 bites / 16 bites változó alfacsatorna | 8 bites alfacsatorna támogatása | 8, 10 és 12 bites alfacsatorna támogatása | Nincs transzparenciacsatorna-támogatás |
| Fájlméret (Fényképek) | Fényképek esetén gyakran nagyobb, mint a veszteséges formátumoké; a relatív méret a képtől és a kódolótól függ. | A JPEG-nél kisebb is lehet; az eredmény a képtől és a kódolótól függ. | A JPEG-nél kisebb is lehet; az eredmény a képtől és a kódolótól függ. | Közepes (alapérték) |
| Fájlméret (grafika/UI) | Rendkívül kis fájlméretű képernyőképek, vonalas rajzok és szöveg esetén | Kiváló veszteségmentes mód | Jó, de lassabban kódolható | Gyenge (csengési műtermékeket hoz létre az éles élek mentén) |
| Böngészőkompatibilitás | A főbb böngészők támogatják; az elérhetőség a böngészőtől és annak verziójától függ. | Sok jelenlegi böngészőben széles körben támogatott; az elérhetőség verziónként és platformonként eltér. | Sok jelenlegi böngésző támogatja; az elérhetőség verziónként és platformonként eltér. | Széles körben támogatott; az elérhetőség termékenként és verziónként eltér. |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
A képnézegető a következő hibát jelzi: „Fatal error: Not a valid PNG file”, vagy nem tudja megnyitni a képet.
Kiváltó ok: Az első 8 bájtot megváltoztatta egy ASCII átviteli mód (a 0x0D 0x0A átalakult 0x0A-vá vagy 0x0D 0x0D 0x0A-vá).
Helyreállítás: Nyissa meg a fájlt egy hexaszerkesztőben, és ellenőrizze, hogy az első 8 bájt megegyezik-e ezzel: „89 50 4E 47 0D 0A 1A 0A”. Ennek a 8 fejlécbájtnak a pontos helyreállításával gyakran visszaállítható a kép.
A pngcheck a következő üzenetet adja: „CRC error in chunk IDAT”, vagy a kép részlegesen, sérült alsó képsorokkal töltődik be.
Kiváltó ok: Bitkorrupció a tömörített zlib-adatfolyamban vagy érvénytelen CRC32-ellenőrzőösszeg egy IDAT-blokkban.
Helyreállítás: Használja a pngcheck -f parancsot vagy a Deflate-adatfolyamok helyreállítására szolgáló segédprogramokat az érvényes CRC32-értékek újraszámításához, vagy fejtse vissza a sérült blokkig megmaradt képsorokat.
A kép jól jelenik meg asztali képnézegetőkben, de az iOS-alkalmazások nem tudják megnyitni.
Kiváltó ok: Az iOS az Apple saját CgBI-formátumát várja, amelyben fel van cserélve a bájtok sorrendje, vagy nem szabványos színtérblokkokat vár.
Helyreállítás: Normalizálja a képet a „pngcrush -revert-iphone-optimizations” paranccsal, hogy visszaállítsa a szabványos W3C RGBA-sorrendet.
Biztonsági elemzés és elemző (parser) támadási vektorok
A PNG-t számos operációs rendszer és alkalmazás támogatja. A biztonsági kockázatok közé tartozik a dekóder memóriájának kimerítése és a rosszindulatú kiegészítő blokk.
Ismert támadási vektorok
- Túlméretezett tEXt- és zTXt-metaadatblokkok, amelyek memóriakimerüléses (OOM) szolgáltatásmegtagadást okoznak a homokozó nélkül futó dekódolókban.
- Halompuffer-túlcsordulási sebezhetőségek a régebbi libpng-kiadásokban (pl. CVE-2015-8126 a png_set_PLTE függvényben).
- Képpontáradat-tömörítési támadások, ahol a kis fájlméretű kép hatalmas méreteket deklarál (pl. 100 000 x 100 000 képpont).
- Steganográfiai adatszivárgás: titkosított adatokat rejtenek el kiegészítő, privát blokkokban (pl. eXIf vagy egyéni blokktípusok).
Ajánlott védekezési módszerek: Mindig ellenőrizze a kép méreteit, mielőtt memóriát foglalna a képpontpufferek számára. A felhasználók által feltöltött képekből memóriabiztos tisztítóval távolítsa el a nem szükséges kiegészítő blokkokat (eXIf, tEXt).
Történeti háttér és mérföldkövek
Főbb előnyök
- A PNG veszteségmentes tömörítést használ, ezért egy változatlan kép kódolása nem okoz tömörítési veszteséget; a szerkesztés vagy a színkonverzió azonban módosíthatja a képpontok értékeit.
- A 8 bites alfa-átlátszóság zökkenőmentes kompozitálást tesz lehetővé összetett háttereken.
- A gammakorrekció és a színességi adatok blokkjai következetes megjelenítést biztosítanak a különböző monitorokon.
Technikai korlátok és hátrányok
- Fotók esetén a fájlméret lényegesen nagyobb a modern veszteséges formátumok, például a WebP vagy az AVIF fájlméreténél.
- A szabványos PNG natívan nem támogatja a többképkockás animációt (ehhez az APNG-kiterjesztés szükséges).
- A nagy bitmélység (csatornánként 16 bit) hatalmas, tömörítetlen dekódolási puffereket hoz létre a memóriában.
Érdekes technikai tudnivalók
- A 8 bájtos azonosító fejlécet kifejezetten úgy tervezték, hogy FTP-átvitel során észlelje a CR/LF miatti sorvégsérüléseket.
- A PNG nem hivatalos rekurzív betűszava a „PNG's Not GIF" volt.
- Az Apple saját CgBI-blokkot használ az iOS-alkalmazások PNG-fájljaiban; ez az RGBA-sorrendet BGRA-ra cseréli a közvetlen GPU-renderelés érdekében.
Gyakran Ismételt Műszaki Kérdések
Miért nő meg néha a PNG-fájl mérete, amikor képszerkesztőben mentik?
A különböző szoftvercsomagok eltérő Deflate-tömörítési szinteket és prediktív képsorszűrőket használnak. Az olyan programok, mint a Photoshop, gyakran tömörítetlen színprofilokat és XMP-metaadatblokkokat fűznek a fájlhoz, és nem optimalizálják az IDAT-blokkok méretét. Az olyan dedikált eszközök, mint a File2File.app Compressor, mind az 5 képsorszűrőt újraértékelik a minimális fájlméret elérése érdekében.
Mi a különbség a PNG-8 és a PNG-24 között?
A PNG-8 legfeljebb 256 színből álló indexelt palettát használ (hasonlóan a GIF-hez), így nagyon kis fájlokat hoz létre, amelyek egyszerű ikonokhoz alkalmasak. A PNG-24 16,7 millió színt támogat (Truecolor, csatornánként 8 bit), a PNG-32 pedig egy 8 bites alfa-átlátszósági csatornával egészül ki.
Miért van a PNG-nek 5 prediktív pásztázássor-szűrője?
A Deflate az ismétlődő bájtmintákat tömöríti. Mivel a fényképek és a színátmenetek képpontértékei fokozatosan változnak, a PNG minden képsorra alkalmaz egy szűrőt (None, Sub, Up, Average, Paeth), amely kiszámítja a szomszédos képpontok közötti különbségeket. Így a színátmenetes adatokból közel nulla értékű bájtok sorozata lesz, amelyeket a Deflate sokkal hatékonyabban tömörít.
Támogatja a PNG a CMYK színtereket a kereskedelmi nyomtatáshoz?
Nem. A hivatalos W3C PNG-specifikáció szándékosan a szürkeárnyalatos, indexelt és RGB színtípusokra korlátozódik. A CMYK-t igénylő professzionális nyomtatási munkafolyamatokhoz TIFF- vagy PDF-fájlokat kell használni.
Kapcsolódó PNG konverziós párok
A PNG-raszterképek JPEG-formátumba alakítása veszteséges tömörítéssel csökkenti a fájlméretet, így a képek gyorsabban töltődnek be a webhelyeken, és kevesebb tárhelyet foglalnak.
A veszteséges JPEG-raszterkép veszteségmentes PNG-raszterképpé alakítása megakadályozza a további minőségromlást, és lehetővé teszi az alfa-csatorna használatát az átlátszósághoz.
A PNG-képek WebP-vé alakításával csökkenhet a fájlméret, miközben megmarad az átlátszóság; az eredmény attól függ, hogy veszteséges vagy veszteségmentes kódolást használunk, valamint a kép tartalmától.
A WebP PNG-vé alakításával állóképet hozhat létre a PNG-t támogató szoftverekhez; az átalakítás nem őrzi meg a WebP-animációt, és a veszteséges forrásból elveszett részleteket sem állítja helyre.
A HEIC átalakítása PNG-vé a veszteséges HEVC-tömörítésű fotókat széles körben támogatott, veszteségmentes grafikus fájlokká alakítja.
Az SVG vektorfájlok PNG raszterképpé alakítása a méretezhető, kódalapú grafikát rögzített képpontráccsá alakítja a széles körű alkalmazáskompatibilitás érdekében.
Raszteres PNG-képek beágyazása SVG XML-vektorkonténerbe, hogy a weben rugalmasan méretezhetők legyenek, és vektorgrafikát támogató elrendezésekbe illeszthetők legyenek.
Konvertálja az Adobe Photoshop PSD-grafikákat veszteségmentes PNG-képekké, teljes alfacsatornás átlátszósággal, közvetlenül a böngészőjében, szerverre történő adatküldés nélkül.