PNG-billede (.png)

W3C Standard

Portable Network Graphics (PNG) er et patentfrit rastergrafikfilformat, der understøtter tabsfri datakomprimering, indekserede farver og variabel alfakanaltransparens.

Konverter PNG til JPG

Gratis PNG til JPG-konverter i browseren. Konverter filer med det samme på din enhed.

Komprimér PNG online

Privat - filer forlader aldrig din enhed

Undersøgelse og metadata

Operativsystemer og filanalysatorer identificerer PNG-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

Privat - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 byte overført til eksterne servere. Al behandling foregik lokalt i browserens sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer PNG-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

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

ASCII-REPRÆSENTATION: .PNG....

Standardisering: W3C Recommendation (1996) / ISO/IEC 15948:2004

Tekniske specifikationer

ContainerarkitekturBlokbaseret binærbeholder med 4-byte CRC32-verificering pr. blok
KomprimeringDeflate (LZ77 + Huffman-kodning) med 5 prædiktive scanningslinjefiltre (None, Sub, Up, Average, Paeth)
Byte-rækkefølgeBig-Endian (netværksbyte-rækkefølge) for bloklængder, dimensioner og CRC'er
FarverumsRGB, Display P3, Indekseret palet (1-8 bit), Gråtoner, Ægte farver (24/48-bit)
Kanaler og strukturRGB + Alpha (op til 16 bit pr. kanal / 64-bit RGBA)
Maks. dimensioner2.147.483.647 x 2.147.483.647 pixels (4-byte usignerede heltal)
GennemsigtighedFuld 8-bit / 16-bit variabel alfatransparenskanal
Streaming og progressivAdam7-algoritmen med 7 gennemløb muliggør progressiv gengivelse af 2D-scanningslinjer.

Teknisk sammenligningsmatrix: PNG sammenlignet med konkurrenterne

Teknisk attributPNG (Aktuel)WebPAVIFJPEG
KomprimeringstypeStrengt tabsfri (Deflate + 2D prædiktive filtre)Tabsgivende (VP8) & tabsfri (VP8L)Tabsgivende (AV1 intra) & tabsfriStrengt tabsgivende (Diskret Cosinustransformation)
AlfatransparensFuld 8-bit / 16-bit variabel alfakanal8-bit alfakanal understøttet8-bit / 10-bit / 12-bit alfa understøttetIngen understøttelse af transparenskanal
Filstørrelse (fotografier)Ofte større end tabsgivende formater til fotografier; størrelsen varierer efter billede og encoderKan være mindre end JPEG; resultatet varierer efter billede og encoderKan være mindre end JPEG; resultatet varierer efter billede og encoderMellemstor (baseline)
Filstørrelse (grafik/UI)Ekstremt kompakt til skærmbilleder, stregtegninger og tekstFremragende tabsfri tilstandGod, men langsommere at kodeDårlig (producerer ringartefakter langs skarpe kanter)
BrowserkompatibilitetUnderstøttes af de største browsere; tilgængeligheden afhænger af browser og version.Bred understøttelse i mange aktuelle browsere; dækningen varierer efter version og platform.Understøttes af mange aktuelle browsere; dækningen varierer efter version og platform.Bred understøttelse; tilgængeligheden afhænger af produkt og version.

Almindelige korruptionstilstande og hex-gendannelsesvejledning

Billedvisningsprogram viser 'Fatal error: Not a valid PNG file' eller kan ikke åbne filen.

Grundlæggende årsag: De første 8 bytes blev ændret af en ASCII-overførselstilstand (hvor 0x0D 0x0A blev ændret til 0x0A eller 0x0D 0x0D 0x0A).

Gendannelse: Åbn filen i en hex-editor, og kontrollér, at de første 8 bytes stemmer overens med '89 50 4E 47 0D 0A 1A 0A'. Gendannelse af disse nøjagtige 8 header-bytes gendanner ofte billedet.

pngcheck rapporterer 'CRC error in chunk IDAT' eller billedet indlæses delvist med korrupte nederste scanningslinjer.

Grundlæggende årsag: Bitkorruption i den komprimerede zlib-datastream eller ugyldig CRC32-kontrolsum i en IDAT-blok.

Gendannelse: Brug pngcheck -f eller gendannelsesværktøjer til Deflate-streams for at genberegne gyldige CRC32-værdier, eller dekomprimér de intakte scanningslinjer op til den korrupte blok.

Billedet gengives fint i billedvisningsprogrammer på computere, men fejler i iOS-applikationer.

Grundlæggende årsag: iOS forventer Apples proprietære CgBI-byte-ombyttede format eller ikke-standardiserede farverumsblokke.

Gendannelse: Normaliser billedet ved hjælp af 'pngcrush -revert-iphone-optimizations' for at gendanne standard W3C RGBA-rækkefølge.

Sikkerhedsanalyse og parser-angrebsvektorer

PNG understøttes af mange operativsystemer og apps. Sikkerhedsrisici omfatter udtømning af dekoderens hukommelse og skadelige hjælpeblokke.

Kendte angrebsvektorer

  • Overdimensionerede tEXt- og zTXt-metadatablokke, der udløser Out-Of-Memory (OOM) tjenestenægtelse i afkodere uden sandboxing.
  • Sårbarheder med heap buffer-overløb i ældre libpng-udgivelser (f.eks. CVE-2015-8126 i png_set_PLTE).
  • Pixel flood-dekomprimeringsangreb, hvor et billede med en lille filstørrelse erklærer enorme dimensioner (f.eks. 100.000 x 100.000 pixels).
  • Steganografisk eksfiltration, der skjuler krypterede nyttelaster i hjælpeblokke (f.eks. eXIf eller tilpassede bloktyper).

Defensive bedste praksisser: Valider altid billeddimensioner, før pixelbuffere tildeles i hukommelsen. Fjern ikke-væsentlige hjælpeblokke (eXIf, tEXt) ved brugerupload ved hjælp af et hukommelsessikkert rensningsværktøj.

Historisk oprindelse og milepæle

2004Standardiseret internationalt som ISO/IEC 15948.
1996PNG 1.0 udgivet som W3C-anbefaling.
1995Oprettet på Usenet comp.graphics som en åben erstatning for GIF efter Unisys' håndhævelse af LZW-patentgebyrer.

Vigtige fordele og styrker

  • PNG bruger tabsfri komprimering, så kodning af et uændret billede ikke giver komprimeringstab; redigering eller farvekonvertering kan dog ændre pixelværdierne.
  • Glat 8-bit alfatransparens muliggør ren blanding på komplekse baggrunde.
  • Gammakorrektion og kromaticitetsblokke sikrer ensartet gengivelse på tværs af forskellige skærme.

Tekniske begrænsninger og ulemper

  • Betydeligt større filstørrelser sammenlignet med moderne tabsgivende formater som WebP eller AVIF til fotografisk indhold.
  • Ingen indbygget animation med flere rammer i standard PNG (kræver APNG-udvidelse).
  • Høj bitdybde (16 bit pr. kanal) skaber enorme ukomprimerede afkodningsbuffere i hukommelsen.

Interessante tekniske fakta

  • Den 8 byte lange magiske signatur blev specifikt designet til at registrere korruption af CR/LF-linjeslutninger under FTP-overførsler.
  • Det uofficielle rekursive akronym for PNG var 'PNG's Not GIF'.
  • Apple bruger en proprietær CgBI-blok i iOS-app-PNG'er, der vender RGBA om til BGRA for direkte GPU-gengivelse.

Ofte stillede tekniske spørgsmål

Hvorfor stiger en PNG-fils størrelse nogle gange, når den gemmes i billedredigeringsprogrammer?

Forskellige softwarepakker bruger forskellige Deflate-komprimeringsniveauer og heuristikker for prædiktive scanningslinjefiltre. Programmer som Photoshop tilføjer ofte ukomprimerede farveprofiler, XMP-metadatablokke og uoptimerede IDAT-blokstørrelser. Dedikerede værktøjer som File2File.app Compressor genvurderer alle 5 scanningslinjefiltre for at opnå minimal filstørrelse.

Hvad er forskellen mellem PNG-8 og PNG-24?

PNG-8 bruger en indekseret farvepalet på op til 256 farver (svarende til GIF), hvilket producerer meget små filer, der egner sig til enkle ikoner. PNG-24 understøtter 16,7 millioner farver (Truecolor 8 bit pr. kanal), hvor PNG-32 tilføjer en 8-bit alfatransparenskanal.

Hvorfor har PNG 5 prædiktive scanningslinjefiltre?

Deflate komprimerer gentagne bytemønstre. Da fotografiske eller gradient-pixelværdier ændrer sig gradvist, filtrerer PNG hver scanningslinje (None, Sub, Up, Average, Paeth) ved at beregne forskelle mellem tilstødende pixels. Dette omdanner gradientdata til strenge af bytes med værdier tæt på nul, der komprimerer dramatisk bedre under Deflate.

Understøtter PNG CMYK-farverum til kommerciel udskrivning?

Nej. Den officielle W3C PNG-specifikation begrænser bevidst farvetyper til gråtoner, indekseret farve og RGB. Professionelle arbejdsgange til tryk, der kræver CMYK, skal bruge TIFF- eller PDF-beholdere.