PNG-dokumentum (.png)

W3C-ajánlás Szabvány

A 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:

Válasszon ki vagy húzzon ide fájlokat

Privát - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Adatvédelmi garancia hálózati adatátvitel nélkül: 0 bájt került fel külső szerverekre. Minden feldolgozás helyben, a böngésző elkülönített környezetében történt.

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 0A

ASCII Á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úraBlokkalapú bináris tároló, blokkonkénti, 4 bájtos CRC32-ellenőrzéssel
TömörítésDeflate (LZ77 + Huffman-kódolás) 5 prediktív, soronként alkalmazott szűrővel (None, Sub, Up, Average, Paeth)
BájtsorrendNagy bájtsorrend (nagy bájtsorrendű / hálózati bájtsorrend) a blokkhosszak, méretek és CRC-k tárolásához
SzíntereksRGB, Display P3, Indexelt paletta (1-8 bites), Szürkeárnyalatos, Valódi színes (24/48 bites)
Csatornák és struktúraRGB + alfa (legfeljebb 16 bit csatornánként / 64 bites RGBA)
Max. méretek2 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ágTeljes, változó átlátszóságú, 8 vagy 16 bites alfacsatorna
Streaming és progresszívAz 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útumPNG (Jelenlegi)WebPAVIFJPEG
Tömörítési típusSzigorúan veszteségmentes (Deflate + 2D prediktív szűrők)Veszteséges (VP8) és veszteségmentes (VP8L)Veszteséges (AV1 intra) és veszteségmentesSzigorúan veszteséges (Diszkrét Koszinusz Transzformáció)
AlfaátlátszóságTeljes 8 bites / 16 bites változó alfacsatorna8 bites alfacsatorna támogatása8, 10 és 12 bites alfacsatorna támogatásaNincs 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énKiváló veszteségmentes módJó, de lassabban kódolhatóGyenge (csengési műtermékeket hoz létre az éles élek mentén)
BöngészőkompatibilitásA 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

2004Nemzetközileg az ISO/IEC 15948 szabványban szabványosították.
1996A PNG 1.0-t W3C-ajánlásként tették közzé.
1995A PNG-t a Usenet comp.graphics csoportjában hozták létre a GIF nyílt alternatívájaként, miután a Unisys elkezdte érvényesíteni az LZW-szabadalomra vonatkozó licencdíjat.

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

PNG - JPG

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.

JPG - PNG

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.

PNG - WEBP

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.

WEBP - PNG

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.

HEIC - PNG

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.

SVG - PNG

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.

PNG - SVG

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.

PSD - PNG

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.