How to compress a PNG
- Drop one or more PNG files into the box above. They are compressed straight away.
- Read each result: the new size, the saving, how many colours were kept and the measured change.
- If you want it smaller, choose fewer colours; if a gradient looks banded, keep dithering on or choose more colours. The files are redone as soon as you change a setting.
- Download them one at a time or all together as a ZIP.
Two ways to make a PNG smaller
Lossless keeps every visible pixel and only stores them better: the best of five filters for each row, maximum compression, the smallest pixel format the image allows (grayscale if it has no colour, no transparency channel if nothing is see-through, an exact palette if it uses 256 colours or fewer) and no hidden extras. How much that saves depends on how carelessly the file was saved.
Fewer colours is what TinyPNG-style compressors do. A normal PNG can hold millions of colours; this keeps up to 256 well-chosen ones, transparency included, and stores each pixel as one byte instead of three or four. Screenshots, logos, icons, charts and illustrations rarely use more than a few thousand colours, so the change is usually invisible.
We measured both on real files:
| File | Original | Lossless | 256 colours | Average change |
|---|---|---|---|---|
| Chrome screenshot of a web page, 1280×900 | 87.1 KB | 85.5 KB (−2%) | 40.0 KB (−54%) | 0.03 of 255 |
| Logo with soft, see-through edges, 320×200 | 10.4 KB | — | 5.9 KB (−43%) | 0.08 of 255 |
| Photo saved as PNG, 480×360 | 320.9 KB | 315.5 KB (−2%) | 102.6 KB (−68%), dithered | 2.66 of 255 |
| Logo with junk colours hidden behind transparent pixels | 155.9 KB | 10.4 KB (−93%) | — | none visible |
“Average change” is how far each colour channel moved, on a scale of 0 to 255, measured with the image laid on white and on black so that changes in see-through edges count too. Under about 1 is hard to see at all; the photo’s 2.66 shows as faint grain in smooth areas if you zoom in. The page reports the same figure for your own files, and our test suite checks that it matches an independent calculation.
Browser screenshots are already compressed reasonably well, so lossless only saved 2%. Fewer colours halved it. The last row is a common case in files exported from design tools: fully transparent pixels still store a colour nobody can see, and random leftovers there compress badly. Setting them to one value took that file from 156 KB to 10 KB without changing anything visible.
Transparency stays
Every colour in the palette carries its own transparency, so soft edges, shadows and glows keep their partly see-through pixels: on the test logo, 11,174 of its 11,191 semi-transparent edge pixels were still semi-transparent afterwards. Compressors that convert to JPG to save space lose the transparent background entirely, because JPG has none.
What else changes
- Kept: the colour profile (iCCP, sRGB, gamma) and the print resolution (DPI).
- Removed: text notes, timestamps and EXIF data, which in a PNG from a phone or camera can include where it was taken. The result lists what was dropped.
- 16-bit PNGs come out as 8 bits per channel, which is what screens show. Keep the original if you are still editing.
- Interlaced PNGs come out non-interlaced, which is smaller.
- Animated PNGs are left alone, because only the first frame would survive.
- If nothing smaller comes out, you get the original back, unchanged, and the page says so.
Every new file is opened again by the page and compared, pixel by pixel, with what it was meant to contain before you see the Download button.
When PNG is the wrong format
For photos, PNG is the wrong tool even after compression: the photo above is still 103 KB as a 256-colour PNG, while a good JPG or WebP of it is far smaller with no visible banding. Use PNG to JPG or PNG to WebP for photos, and Compress image to an exact size when a form wants a file under a set number of kilobytes.