fileformer
search⌘KtranslateENexpand_moreupload_fileConvert
Converters8 file families · 44 direct conversions
What changes in a conversionarrow_forward

Convert PNG Image Free

PNG keeps every pixel. It shrinks files by predicting the next one.

PNG never throws detail away. Instead, each row of pixels is rewritten as the small difference from what was expected, then zipped. Flat colours and sharp edges predict well, so screenshots and logos shrink; photos are full of surprises, so they stay huge. Pick an image and see the prediction at work.

screenshot_monitorScreenshotflat UI, sharp text
tokenLogofew colours
photo_cameraPhotonoisy, every pixel differs
the image · 16 × 16
Each square is one pixel. PNG works through them row by row, left to right.
after the filter96% predicted
Dark = predicted exactly, almost free to store. Pink = a surprise the file must record.
prediction filter
Nonestore raw valuesSubdifference from the pixel on the leftUpdifference from the pixel abovePaethbest guess from left, above and diagonal
predicted exactly96%PNG size, full image≈ 4.4 KB
Dark pixels on the right were predicted exactly and cost almost nothing to store. Flat backgrounds and straight edges predict perfectly, which is why PNG suits screenshots and logos.
~/png-8-24-32

"PNG-8" and "PNG-24" are the same format, set differently.

Design tools offer several kinds of PNG. They differ in how many colours each pixel can hold and whether it can be see-through. Picking the smallest one that fits is the easiest size win.

PNG-88-bit palette
coloursup to 256transparencyon or offlogo size4 KB
Icons, flat logos and simple charts. The smallest PNG by far.
PNG-2424-bit truecolour
colours16.7 milliontransparencynonelogo size11 KB
Screenshots and graphics with gradients, on a solid background.
PNG-3224-bit + alpha
colours16.7 milliontransparencysmooth, 256 levelslogo size14 KB
Anything with soft shadows or see-through edges over other content.
PNG-48 / 6416 bits per channel
colours281 trilliontransparencyoptionallogo size28 KB
Photo editing and scientific images. Wasted on the web.
~/inside-the-file

A PNG is a line of labelled chunks. Some you can safely delete.

Every PNG begins with the same 8 bytes, then a series of chunks, each named with four letters. Only three are required. Screenshots and exports often carry extras: colour profiles, text notes, software names. Removing them is how "PNG optimisers" save space without touching a pixel.

IHDRHeaderwidth, height, bit depth, colour type13 Brequired
PLTEPalettethe 256 colours, in PNG-8 only0-768 Bif PNG-8
IDATImage datathe filtered, zipped pixels94%required
iCCPColour profileDisplay P3, from a Mac3.1 KBoptional
tEXtText notesSoftware: macOS Screenshot40 Bsafe to drop
eXIfPhoto detailsdate, device, sometimes location1.2 KBsafe to drop
IENDEndmarks the end of the file0 Brequired
~/inspect-a-png

Open any PNG and read it chunk by chunk.

This page walks every chunk, recomputes each CRC-32, inflates the image data with your browser’s own DEFLATE, checks the Adler-32 and undoes the row filters itself. So it can show which filter each row used, what the file carries besides pixels, and whether the pixel format is bigger than the content needs. Everything happens on your device. Both samples are real PNGs built in your browser; the second is broken on purpose.

sample-card.png · 1.6 KBrow filter, stored order →
Your browser could not decode this file as an image. The chunk analysis below still works.
None0Sub1Up23Average0Paeth40
file size1.6 KBpixel data share76.7%inflate ratio19.65×stored bits / pixel1.63distinct coloursover 256metadata229 B
What the bytes say
Signature89 50 4E 47 0D 0A 1A 0A
Dimensions96 × 64 px
Pixel format8-bit truecolour + alpha · 32 bits/px
Interlacenone
Chunks11 (1 IDAT)
CRC-32all 11 match
zlib headerdeflate · 32 KB window · “default”
Inflated data1.2 KB → 24.1 KB of 24.1 KB
Adler-324B825925 matches
Colour handlingsRGB chunk
Animationnone
After IENDnothing
check_circleStructure is valid: signature, chunk order, every CRC-32, the zlib stream and its Adler-32 all check out.
info2 text entries (Software, Description). Anyone can read them in a hex editor; PNG optimisers usually delete them.
File map, to scaleevery byte of the file, left to right
Signature0.5% · 8 BStructure2.3% · 37 BColour4.5% · 73 BMetadata7.8% · 128 BText7.5% · 122 BPixel data77.5% · 1.2 KB
OffsetTypeLengthCRC-32Letter-case bitsDecoded content
8IHDR13E534720Ecritical · public · unsafe to copy96 × 64 · 8-bit · colour type 6 (truecolour + alpha) · compression 0 · filter 0 · interlace 0
33sRGB1AECE1CE9ancillary · public · unsafe to copyrendering intent 0: perceptual
46gAMA40BFC6105ancillary · public · unsafe to copy45455 → encoded with gamma 0.45455 (1/2.2)
62cHRM329CBA513Cancillary · public · unsafe to copywhite 0.3127, 0.3290 · red 0.6400, 0.3300 · green 0.3000, 0.6000 · blue 0.1500, 0.0600
106pHYs9495224F0ancillary · public · safe to copy5,669 × 5,669 px per metre → 144.0 × 144.0 dpi
127tIME74022463Eancillary · public · unsafe to copy2026-10-02 09:30:00 UTC
146tEXt340A8D84C1ancillary · public · safe to copySoftware = “FileFormer sample builder”
192iTXt643E6FC186ancillary · public · safe to copyDescription · language fr = “Échantillon: une carte arrondie”
268eXIf76EBECD558ancillary · public · safe to copylittle-endian TIFF · 3 tags in IFD0 · Make FileFormer · Orientation 1 · Software Sample builder
356IDAT1,2547F77C24Bcritical · public · unsafe to copy1,254 B of the zlib stream
1,622IEND0AE426082critical · public · unsafe to copyend of the image; decoders stop here
Each letter’s case is a flag: 1st lower-case = ancillary (decoders may skip it), 2nd = private, 3rd must be upper-case, 4th lower-case = safe for editors to copy even if they change the pixels. Runs of more than six identical chunks are folded into one row.
Could the pixel data be smaller?The page takes the unfiltered rows above, applies each filter to every row, compresses each version with your browser’s DEFLATE and weighs it. Adaptive picks, per row, the filter with the smallest sum of absolute differences, the heuristic libpng uses by default.
In this fileas the encoder wrote it1.2 KBbaseline
Nonebytes stored as they are9.4 KB+665.5%
Subminus the byte to the left1.2 KBsame
Upminus the byte above1.4 KB+15.6%
Re-filtering and compressing, 4 of 6…
Optimised copyKeeps structure, colour and pixel-size chunks; drops text, time, EXIF, unregistered chunks and anything after IEND; writes the smallest pixel data above as one IDAT. Then your browser decodes both files and compares every pixel.
Statuswaiting for the lab
downloadDownload optimised PNG
~/spec-sheet

PNG at a glance: the technical reference.

Identification, limits and capabilities, taken from the W3C specification.

Full namePortable Network Graphicsofficially pronounced “ping”
Extension.pngAPNG files also use .png
MIME typeimage/pnganimated: image/apng is registered too
Magic bytes89 50 4E 47 0D 0A 1A 0Athe 8-byte signature, explained below
StandardW3C PNG 3rd ed. · ISO/IEC 15948first published 1996; 3rd edition 2025
Maximum size2³¹−1 × 2³¹−1 pxwidth and height are 31-bit; memory is the real limit
Bit depth1, 2, 4, 8, 16 per channelup to 64 bits per pixel with alpha
Colour typesgrey, RGB, palette, + alpha5 combinations in total
CompressionLossless · DEFLATEafter per-row prediction filters
TransparencyFull 8/16-bit alphaor a single transparent colour (tRNS)
AnimationAPNG (acTL, fcTL chunks)in the spec since the 3rd edition
IntegrityCRC-32 on every chunkdamaged chunks can be detected
~/the-first-8-bytes

The PNG signature was designed to catch broken transfers.

Every PNG opens with the same 8 bytes. Each one is there for a reason: together they detect files mangled by text-mode FTP, 7-bit email and line-ending conversion, which were everyday problems in 1996. Click a byte.

89‰50P4EN47G0DCR0ALF1A^Z0ALF
byte 1 · 0x89 · High-bit byteNon-ASCII on purpose. If a transfer strips the 8th bit (old 7-bit email), this becomes 09 and the file is instantly rejected.
89 50 4E 47 0D 0A 1A 0A signature00 00 00 0D IHDR length: 13 bytes49 48 44 52 "IHDR"00 00 04 00 00 00 03 00 width 1024 · height 76808 06 8-bit · RGBA00 00 00 deflate · adaptive · no interlaceB7 5C 42 11 CRC-32 of the chunk
~/born-from-a-patent

PNG was written in a few months to escape a patent fee on GIF.

When Unisys began enforcing its patent on GIF’s compression, a group on Usenet designed a free replacement. Thirty years later, the third edition added HDR and animation.

1995Unisys enforces LZW patentGIF’s compression suddenly required a licence fee for software makers.
1996PNG 1.0 publishedWritten by volunteers in months; became a W3C Recommendation in October.
2003ISO/IEC 15948PNG becomes an international standard.
2008APNG in FirefoxAnimated PNG appears, outside the official spec.
2025Third editionAdds HDR (cICP chunk), official APNG and EXIF support.