PNG-bild (.png)
W3C StandardPortable Network Graphics (PNG) är ett fritt rastergrafikfilformat som stöder förlustfri datakomprimering, indexerade färger och variabel alfakanaltransparens.
Konvertera PNG till JPG
Gratis konverterare från PNG till JPG i webbläsaren. Konvertera filer direkt på din enhet.
Komprimera PNG online
Privat - filer lämnar aldrig din enhet
Granska och metadata
Operativsystem och filanalysverktyg identifierar PNG-filer genom att granska den inledande sekvensen av binära byte:
Signatur i filhuvudet på bytenivå (magiska byte)
Operativsystem och filanalysverktyg identifierar PNG-filer genom att granska den inledande sekvensen av binära byte:
HEX-SIGNATUR (OFFSET 0):
89 50 4E 47 0D 0A 1A 0AASCII-REPRESENTATION: .PNG....
Standardisering: W3C Recommendation (1996) / ISO/IEC 15948:2004
Tekniska specifikationer
| Containerarkitektur | Blockbaserad binär behållare med 4-byte CRC32-kontroll för varje block |
| Komprimering | Deflate (LZ77 och Huffman-kodning) med 5 prediktiva filter för skanningslinjer (None, Sub, Up, Average, Paeth) |
| Byteordning | Big-endian (nätverksbyteordning) för blocklängder, dimensioner och CRC-värden |
| Färgrymder | sRGB, Display P3, Indexerad palett (1 till 8 bitar), Gråskala, Truecolor (24/48 bitar) |
| Kanaler och struktur | RGB med alfa (upp till 16 bitar per kanal / 64-bitars RGBA) |
| Maximala dimensioner | 2 147 483 647 x 2 147 483 647 pixlar (32-bitars osignerade heltal på 4 byte) |
| Transparens | Full variabel alfatransparenskanal på 8 eller 16 bitar |
| Strömning och progressiv visning | Adam7-interfolieringsalgoritmen med 7 pass möjliggör progressiv 2D-återgivning av skanningslinjer |
Teknisk jämförelsematris: PNG jämfört med konkurrenter
| Tekniskt attribut | PNG (Aktuell) | WebP | AVIF | JPEG |
|---|---|---|---|---|
| Komprimeringstyp | Helt förlustfri (Deflate + 2D prediktiva filter) | Förlustbringande (VP8) och förlustfri (VP8L) | Förlustbringande (AV1 intra) och förlustfri | Helt förlustbringande (diskret cosinustransform) |
| Alfatransparens | Fullständig 8-bitars / 16-bitars variabel alfakanal | 8-bitars alfakanal stöds | 8-bitars / 10-bitars / 12-bitars alfa stöds | Inget stöd för transparenskanal |
| Filstorlek (fotografier) | Ofta större än förlustkomprimerade format för fotografier; den relativa storleken varierar mellan bilder och kodare | Kan vara mindre än JPEG; resultatet varierar mellan bilder och kodare | Kan vara mindre än JPEG; resultatet varierar mellan bilder och kodare | Medelstor baslinje |
| Filstorlek (grafik/UI) | Extremt kompakt för skärmdumpar, linjekonst och text | Utmärkt förlustfritt läge | Bra, men långsammare att koda | Dålig (ger ringartefakter längs skarpa kanter) |
| Webbläsarkompatibilitet | Stöds av större webbläsare; tillgängligheten beror på webbläsare och version | Brett stöd i många aktuella webbläsare; täckningen varierar mellan versioner och plattformar | Stöds i många aktuella webbläsare; täckningen varierar mellan versioner och plattformar | Brett stöd; tillgängligheten varierar mellan produkter och versioner |
Vanliga skadeorsaker och hex-återställningsguide
Bildvisaren visar 'Fatal error: Not a valid PNG file' eller misslyckas med att öppna filen.
Grundorsak: De första 8 bytena ändrades av ett ASCII-överföringsläge (där 0x0D 0x0A omvandlades felaktigt till 0x0A eller 0x0D 0x0D 0x0A).
Återställning: Öppna filen i en hex-redigerare och kontrollera att de första 8 bytena matchar '89 50 4E 47 0D 0A 1A 0A'. Återställning av dessa exakta 8 huvudbyte återställer ofta bilden.
pngcheck rapporterar 'CRC error in chunk IDAT' eller så läses bara en del av bilden in och de nedre skanningslinjerna är skadade.
Grundorsak: Bitkorruption i den komprimerade zlib-dataströmmen eller ogiltig CRC32-kontrollsumma i ett IDAT-block.
Återställning: Använd pngcheck -f eller verktyg för återställning av Deflate-strömmar för att räkna om giltiga CRC32-värden, eller dekomprimera kvarvarande skanningslinjer upp till det skadade blocket.
Bilden renderas fint i skrivbordsvisare men misslyckas i iOS-applikationer.
Grundorsak: iOS förväntar sig Apples proprietära CgBI-format med omkastad byteordning eller färgrymdsblock som avviker från standarden.
Återställning: Normalisera bilden med 'pngcrush -revert-iphone-optimizations' för att återställa standardiserad W3C RGBA-ordning.
Säkerhetsanalys och attackvektorer för tolkar
PNG stöds av många operativsystem och appar. Säkerhetsrisker omfattar att dekodarens minne töms och skadliga tilläggsblock.
Kända attackvektorer
- Mycket stora tEXt- och zTXt-metadatablock som kan utlösa minnesbrist (OOM) och överbelastningsattacker i avkodare utan sandlåda.
- Sårbarheter för heap-buffertspill i äldre libpng-utgåvor (t.ex. CVE-2015-8126 i png_set_PLTE).
- Pixelöversvämningsattacker där en bild med liten filstorlek deklarerar enorma dimensioner (t.ex. 100 000 x 100 000 pixlar).
- Steganografisk exfiltrering som döljer krypterade nyttolaster i privata tilläggsblock (t.ex. eXIf eller anpassade blocktyper).
Rekommenderade skyddsåtgärder: Validera alltid bildens dimensioner innan pixelbuffertar allokeras i minnet. Rensa bort icke-essentiella tilläggsblock (eXIf, tEXt) vid användaruppladdningar med hjälp av en minnessäker rensare.
Historiskt ursprung och milstolpar
Viktiga fördelar
- PNG använder förlustfri komprimering, så kodning av en oförändrad bild ger inga komprimeringsförluster; redigering eller färgkonvertering kan ändå ändra pixelvärden.
- Jämn transparens med 8-bitars alfa ger en snygg övergång mot komplexa bakgrunder.
- Gammakorrigering och kromacitetsblock säkerställer konsekvent rendering på olika bildskärmar.
Tekniska begränsningar
- Betydligt större filstorlekar än med moderna format för förstörande komprimering, som WebP eller AVIF, för fotografiskt innehåll.
- Inget inbyggt stöd för animationer med flera bildrutor i standard-PNG (kräver APNG-tillägg).
- Högt bitdjup (16 bitar per kanal) skapar enorma okomprimerade avkodningsbuffertar i minnet.
Intressant teknisk kuriosa
- Den 8 byte långa magiska signaturen utformades särskilt för att upptäcka skador på CR/LF-radbrytningar vid FTP-överföringar.
- Den inofficiella rekursiva akronymen för PNG var 'PNG's Not GIF'.
- Apple använder ett proprietärt CgBI-block i iOS-appars PNG-filer som vänder om RGBA till BGRA för direkt GPU-rendering.
Vanliga tekniska frågor
Varför ökar ibland storleken på en PNG-fil när den sparas i bildredigerare?
Olika program använder olika Deflate-komprimeringsnivåer och heuristik för prediktiva radfilter. Program som Photoshop lägger ofta till okomprimerade färgprofiler, XMP-metadatablock och IDAT-block i storlekar som inte är optimerade. Specialiserade verktyg som File2File.app Compressor testar alla fem radfilter på nytt för att få ned filstorleken så mycket som möjligt.
Vad är skillnaden mellan PNG-8 och PNG-24?
PNG-8 använder en indexerad färgpalett med upp till 256 färger (liknande GIF), vilket ger mycket små filer lämpliga för enkla ikoner. PNG-24 stöder 16,7 miljoner färger (Truecolor 8 bitar per kanal), där PNG-32 lägger till en 8-bitars alfakanal för transparens.
Varför har PNG fem prediktiva radfilter?
Deflate komprimerar upprepade bytemönster. Eftersom pixelvärden i fotografier och gradienter ändras gradvis filtrerar PNG varje skanningslinje (None, Sub, Up, Average, Paeth) genom att beräkna skillnader mellan intilliggande pixlar. Då omvandlas gradientdata till bytesekvenser med värden nära noll, som komprimeras avsevärt bättre med Deflate.
Stöder PNG CMYK-färgrymder för kommersiell utskrift?
Nej. Den officiella W3C PNG-specifikationen begränsar medvetet färgtyper till Gråskala, Indexerat och RGB. Professionella tryckarbetsflöden som kräver CMYK måste använda TIFF- eller PDF-behållare.
Relaterade konverteringspar för PNG
Genom att konvertera PNG-rasterbilder till JPEG-format minskar filstorleken med hjälp av förstörande komprimering, vilket gör att bilder laddas snabbare på webbplatser och tar mindre lagringsutrymme.
Att konvertera en JPEG-rasterbild med förstörande komprimering till en PNG-rasterbild med förlustfri komprimering förhindrar ytterligare kvalitetsförluster och ger stöd för transparens via alfakanal.
Konvertering från PNG till WebP kan minska filstorleken och samtidigt bevara genomskinlighet. Resultatet beror på om förlustfri eller förlustbehäftad kodning används och på bildinnehållet.
Konvertering från WebP till PNG skapar en stillbild för program som stöder PNG. Animering i WebP bevaras inte, och detaljer som gått förlorade i källbilden kan inte återskapas.
Konvertering av HEIC till PNG omvandlar HEVC-komprimerade foton med kvalitetsförlust till grafikfiler med förlustfri komprimering som stöds brett.
Konvertering av SVG-vektorfiler till PNG-rasterbilder omvandlar skalbar, kodbaserad grafik till pixelrutnät med fast upplösning för bred kompatibilitet med programvara.
Bädda in rasterbaserade PNG-bilder i en SVG-behållare i XML för responsiv skalning på webben och integrering i layouter med vektorstöd.
Konvertera Adobe Photoshop PSD-grafik till förlustfria PNG-bilder med full alfakanaltransparens direkt i din webbläsare utan att data skickas till någon server.