PNG-afbeelding (.png)

W3C Standaard

Portable Network Graphics (PNG) is een royaltyvrij rasterafbeeldingsformaat dat verliesvrije datacompressie, geïndexeerde kleuren en variabele alfakanaaltransparantie ondersteunt.

PNG naar JPG converteren

Gratis PNG-naar-JPG-converter in uw browser. Converteer bestanden direct op uw apparaat.

PNG online comprimeren

Privé - bestanden verlaten uw apparaat niet

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen PNG-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen PNG-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

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

ASCII-WEERGAVE: .PNG....

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

Technische specificaties

ContainerarchitectuurOp chunks gebaseerde binaire container met 4-byte CRC32-verificatie per chunk
CompressieDeflate (LZ77 + Huffman-codering) met 5 voorspellende scanlinefilters (None, Sub, Up, Average, Paeth)
Bytevolgorde (endianness)Big-Endian (netwerkbytevolgorde) voor chunklengten, afmetingen en CRC's
KleurruimtensRGB, Display P3, Geïndexeerd palet (1-8 bit), Grijstinten, Truecolor (24/48-bit)
Kanalen en structuurRGB + Alpha (tot 16 bits per kanaal / 64-bit RGBA)
Maximale afmetingen2.147.483.647 x 2.147.483.647 pixels (gehele getallen zonder teken van 4 bytes)
TransparantieVolledig variabel alfatransparantiekanaal van 8-bit / 16-bit
Streaming en progressiefAdam7 7-pass interlacing-algoritme maakt progressieve 2D-scanlinerendering mogelijk

Technische vergelijkingsmatrix: PNG versus concurrenten

Technisch kenmerkPNG (Huidig)WebPAVIFJPEG
CompressietypeStrikt verliesvrij (Deflate + 2D voorspellende filters)Met verlies (VP8) en verliesvrij (VP8L)Met verlies (AV1 intra) en verliesvrijUitsluitend met verlies (discrete cosinustransformatie)
AlfatransparantieVolledig variabel alfakanaal van 8 bits of 16 bitsAlfakanaal van 8 bits ondersteundAlfa van 8 bits, 10 bits of 12 bits ondersteundGeen ondersteuning voor transparantiekanaal
Bestandsgrootte (foto's)Vaak groter dan formaten met verlies voor foto's; de relatieve grootte verschilt per afbeelding en encoderKan kleiner zijn dan JPEG; resultaten verschillen per afbeelding en encoderKan kleiner zijn dan JPEG; resultaten verschillen per afbeelding en encoderGemiddeld (referentiepunt)
Bestandsgrootte (illustraties en UI)Extreem compact voor schermafbeeldingen, lijntekeningen en tekstUitstekende verliesvrije modusGoed, maar het coderen duurt langerSlecht (produceert ringartefacten langs scherpe randen)
BrowserondersteuningOndersteund door grote browsers; de beschikbaarheid hangt af van de browser en versieBrede ondersteuning in veel huidige browsers; de dekking verschilt per versie en platformOndersteund door veel huidige browsers; de dekking verschilt per versie en platformBrede ondersteuning; de beschikbaarheid verschilt per product en versie

Veelvoorkomende beschadigingen en gids voor hex-herstel

De afbeeldingsweergave toont 'Fatal error: Not a valid PNG file' of weigert te openen.

Oorzaak: De eerste 8 bytes zijn gewijzigd door een ASCII-overdrachtsmodus (waarbij 0x0D 0x0A is verminkt tot 0x0A of 0x0D 0x0D 0x0A).

Herstel: Open het bestand in een hex-editor en controleer of de eerste 8 bytes overeenkomen met '89 50 4E 47 0D 0A 1A 0A'. Het herstellen van deze 8 headerbytes herstelt de afbeelding doorgaans.

pngcheck meldt 'CRC error in chunk IDAT' of de afbeelding wordt gedeeltelijk geladen met beschadigde onderste scanlines.

Oorzaak: Bitcorruptie in de gecomprimeerde zlib-gegevensstroom of een ongeldige CRC32-controlesom in een IDAT-chunk.

Herstel: Gebruik pngcheck -f of tools voor herstel van Deflate-streams om geldige CRC32-waarden te herberekenen, of decomprimeer de resterende scanlines tot aan het beschadigde blok.

De afbeelding wordt correct weergegeven in desktopprogramma's, maar werkt niet in iOS-applicaties.

Oorzaak: iOS verwacht het eigen CgBI-formaat van Apple met verwisselde bytevolgorde, of afwijkende kleurruimte-chunks.

Herstel: Normaliseer de afbeelding met 'pngcrush -revert-iphone-optimizations' om de standaard W3C RGBA-volgorde te herstellen.

Beveiligingsanalyse en aanvalsvectoren voor parsers

PNG wordt door veel besturingssystemen en applicaties ondersteund. Beveiligingsrisico's zijn onder meer uitputting van het geheugen van de decoder en kwaadaardige nevenchunks.

Bekende aanvalsvectoren

  • Te grote tEXt- en zTXt-metadatachunks die in decoders zonder sandbox een denial-of-service door geheugentekort (Out-Of-Memory, OOM) veroorzaken.
  • Buffer-overflowkwetsbaarheden in de heap in verouderde libpng-releases (bijvoorbeeld CVE-2015-8126 in png_set_PLTE).
  • Decompressieaanvallen met 'pixel floods', waarbij een afbeelding met een klein bestand enorme afmetingen opgeeft (bijvoorbeeld 100.000 x 100.000 pixels).
  • Steganografische exfiltratie waarbij versleutelde payloads worden verborgen in private nevenchunks (bijvoorbeeld eXIf of aangepaste chunktypen).

Aanbevolen beveiligingspraktijken: Valideer altijd de afmetingen van een afbeelding voordat u pixelbuffers in het geheugen toewijst. Verwijder niet-essentiële nevenchunks (eXIf, tEXt) uit uploads van gebruikers met een geheugenveilig opschoningsprogramma.

Historische oorsprong en mijlpalen

2004Internationaal gestandaardiseerd als ISO/IEC 15948.
1996PNG 1.0 gepubliceerd als een W3C Recommendation.
1995Gecreëerd op Usenet comp.graphics als een open vervanging voor GIF na de handhaving van octrooivergoedingen voor LZW door Unisys.

Belangrijkste voordelen

  • PNG gebruikt verliesvrije compressie, dus het coderen van een ongewijzigde afbeelding introduceert geen compressieverlies; bewerkingen of kleurconversie kunnen nog steeds pixelwaarden wijzigen.
  • Vloeiende alfatransparantie van 8 bits maakt naadloze overvloeiing op complexe achtergronden mogelijk.
  • Gamma-correctie en chromaticiteits-chunks zorgen voor een consistente weergave op diverse monitoren.

Technische beperkingen

  • Aanzienlijk grotere bestandsgroottes vergeleken met moderne formaten met verlies zoals WebP of AVIF voor fotografische inhoud.
  • Geen ingebouwde animatie met meerdere frames in standaard PNG (vereist de APNG-extensie).
  • Een hoge bitdiepte (16 bits per kanaal) zorgt voor enorm grote, ongecomprimeerde decodeerbuffers in het geheugen.

Interessante technische weetjes

  • De bestandshandtekening (magic bytes) van 8 bytes is specifiek ontworpen om beschadiging van regeleinden (CR/LF) door FTP-overdrachten te detecteren.
  • Het onofficiële recursieve acroniem voor PNG was 'PNG's Not GIF'.
  • Apple gebruikt een eigen CgBI-chunk in PNG-bestanden voor iOS-apps die RGBA omdraait naar BGRA voor directe GPU-rendering.

Veelgestelde technische vragen

Waarom neemt de bestandsgrootte van een PNG-bestand soms toe wanneer het wordt opgeslagen in bewerkingsprogramma's?

Verschillende softwarepakketten gebruiken uiteenlopende Deflate-compressieniveaus en heuristieken voor de voorspellende scanlinefilters. Programma's zoals Photoshop voegen vaak ongecomprimeerde kleurprofielen en XMP-metadatablokken toe en gebruiken niet-geoptimaliseerde IDAT-chunkgroottes. Gespecialiseerde tools zoals de File2File.app Compressor evalueren alle 5 scanlinefilters opnieuw om een zo klein mogelijk bestand te bereiken.

Wat is het verschil tussen PNG-8 en PNG-24?

PNG-8 gebruikt een geïndexeerd kleurenpalet van maximaal 256 kleuren (vergelijkbaar met GIF), wat erg kleine bestanden oplevert die geschikt zijn voor eenvoudige pictogrammen. PNG-24 ondersteunt 16,7 miljoen kleuren (Truecolor met 8 bits per kanaal), en PNG-32 voegt daar een alfatransparantiekanaal van 8 bits aan toe.

Waarom heeft PNG 5 voorspellende scanlinefilters?

Deflate comprimeert herhaalde bytepatronen. Omdat pixelwaarden in foto's en kleurverlopen geleidelijk veranderen, filtert PNG elke scanline (None, Sub, Up, Average, Paeth) door verschillen tussen aangrenzende pixels te berekenen. Zo worden verloopgegevens omgezet in reeksen bytes die dicht bij nul liggen en met Deflate veel beter comprimeren.

Ondersteunt PNG CMYK-kleurruimten voor commercieel drukwerk?

Nee. De officiële PNG-specificatie van het W3C beperkt de kleurtypen bewust tot grijstinten, geïndexeerd en RGB. Professionele drukwerkprocessen die CMYK vereisen, moeten TIFF- of PDF-containers gebruiken.

Gerelateerde conversieparen voor PNG

PNG naar JPG

Het converteren van PNG-rasterafbeeldingen naar het JPEG-formaat verkleint de bestandsgrootte door compressie met verlies (lossy) toe te passen. Hierdoor laden afbeeldingen sneller op websites en gebruiken ze minder opslagruimte.

JPG naar PNG

Het converteren van een JPEG-rasterafbeelding met verlies naar een verliesvrije PNG-rasterafbeelding voorkomt verder generatieverlies en voegt ondersteuning voor transparantie via een alfakanaal toe.

PNG naar WEBP

Het converteren van PNG-afbeeldingen naar WebP kan de bestandsgrootte verkleinen met behoud van transparantie; het resultaat hangt af van het gebruik van codering met verlies of verliesvrije codering en van de inhoud van de afbeelding.

WEBP naar PNG

Het converteren van WebP naar PNG levert een stilstaande afbeelding op voor software die PNG ondersteunt; WebP-animatie wordt niet behouden en details van bronbestanden met verlies kunnen niet worden hersteld.

HEIC naar PNG

Het converteren van HEIC naar PNG transformeert met verlies (lossy) gecomprimeerde HEVC-foto's in breed ondersteunde, verliesvrije grafische bestanden.

SVG naar PNG

Het converteren van SVG-vectorbestanden naar PNG-rasterafbeeldingen transformeert schaalbare, op code gebaseerde graphics in rasters met vaste pixels voor brede toepassingscompatibiliteit.

PNG naar SVG

Verpak PNG-rasterafbeeldingen in een SVG-vectorcontainer (XML) voor responsieve schaling op het web en eenvoudige integratie in vectorlay-outs.

PSD naar PNG

Converteer Adobe Photoshop PSD-afbeeldingen naar verliesvrije PNG-afbeeldingen met volledige alfatransparantie, rechtstreeks in uw browser en zonder serveroverdracht.