CompressSnap
Compress JPEG, PNG, WebP, AVIF and HEIC in your browser — to a quality you choose or to a size you have to hit — and see exactly what the compression cost.
Drop images here, or click to choose
JPEG, PNG, WebP, AVIF, GIF, BMP, TIFF and iPhone HEIC. Very large images are capped to what a browser canvas can hold.
This browser cannot write AVIF, so it is not offered.
Lower quality, smaller file. The measured loss is shown on each result.
How it works
Drop the photos in
Paste, pick or drag them. They queue up — nothing is encoded until you press the button, so a folder of forty does not lock the tab.
Choose the trade
A quality, a size in kilobytes to stay under, a format, a maximum long edge. PNG gets a palette instead of a quality slider.
Let it run
Encoding happens off the main thread, so the page keeps responding while the batch works through.
Take the files
One by one, all of them as a ZIP, or straight into the next tool without a download.
Encodes off the main thread
A Web Worker with OffscreenCanvas does the work and the bitmaps are transferred rather than copied, so a batch of phone photos no longer freezes the tab it is running in.
Compress to a size, not a guess
Give it a kilobyte budget and it bisects the quality until the file fits, then tells you which quality it settled on and how many tries it took.
The loss is a number
Every result is decoded back and compared to its source with SSIM, so "quality 70" stops being a feeling and becomes 0.981 next to the file size it bought.
PNG that actually shrinks
Median-cut palette reduction with optional dithering. It is the only knob a PNG has — the quality argument is ignored by every PNG encoder — and it pays off on screenshots, logos and flat artwork. A photo saved as PNG is better served by converting it to JPEG or WebP, and the tool says so rather than handing back a bigger file.
The formats you actually have
iPhone HEIC and TIFF are converted on the way in, AVIF and WebP are written on the way out when the browser can, and rotation from EXIF is applied so nothing lands on its side.
Nothing leaves the tab
Decoding, encoding, the palette and the measurement all run in your browser. No API, no upload, no account.
The image compressor that tells you what the compression cost
CompressSnap reads JPEG, PNG, WebP, AVIF, GIF, BMP, TIFF and the HEIC files an iPhone produces, and writes JPEG, PNG, WebP and AVIF back. It hits a byte budget by searching for the quality that fits, shrinks PNGs by reducing their palette rather than pretending a quality slider does anything, and measures every result against its source so the trade you made is visible.
Measured, not guessed
Every compressed file is decoded again and compared to what went in. The number is SSIM, the measure that tracks what people actually notice, and it sits next to the file size so the two can be weighed against each other.
Why compress your images?
A HEIC straight off an iPhone, a portrait photo whose rotation lives in an EXIF tag, a screenshot PNG that gets bigger when you push it through JPEG, a 48 megapixel frame that will not fit in a canvas — all of them are the normal case, and each one is converted, rotated, flagged or capped instead of failing quietly.
There is no API behind this page. The decoders, the encoder, the palette reduction and the quality measurement are all JavaScript running in your tab, so a client photo that has not been published yet never leaves your machine.
Frequently Asked Questions
QIs my data sent to any server?+
No. Decoding, encoding, the palette reduction and the quality measurement all run inside your browser. An image you open here never leaves the tab.
QWhy does compressing a PNG do nothing?+
Because PNG is lossless and every encoder ignores the quality argument — the old behaviour of showing a quality slider for PNG was misleading. What does make a PNG smaller is using fewer colours, so for PNG you get a palette control instead. On screenshots, logos and flat artwork, dropping to 64 or 128 colours is invisible and often halves the file.
QCan it compress to a specific size?+
Yes. Turn on the size budget, type a number in kilobytes, and the encoder bisects the quality until the file fits — up to eight attempts. Each result shows the quality it settled on and how many encodes it needed.
QWhat is SSIM and why should I care?+
Structural similarity: a number from 0 to 1 for how close the compressed image is to the original, weighted the way human vision is. It is measured by decoding the result back and comparing it pixel by pixel. Above 0.98 almost nobody can tell; below 0.95 the artefacts start to show. It turns "does quality 70 look alright?" into something you can read off the screen.
QDoes it accept photos from my iPhone?+
Yes. HEIC and HEIF are converted on the way in, as are TIFF files, and the rotation an iPhone stores in the EXIF tag is applied so a portrait photo does not come out on its side. The old version rejected HEIC at the file picker.
QWhy did one of my images come back unchanged?+
Because compressing it would have made it bigger. That happens most often with screenshots and flat graphics pushed through JPEG at a high quality. Rather than hand you a worse file, the tool marks it and keeps the original.
QIs EXIF data removed?+
Yes — re-encoding through a canvas drops every metadata block, including GPS coordinates and camera details. The one piece that matters visually, the orientation tag, is applied to the pixels first so the image stays upright.
QDoes a big batch freeze the page?+
No. The encoding runs in a Web Worker with OffscreenCanvas and the image data is transferred rather than copied, so the page keeps responding while the queue works through. Two images are encoded at a time, which is fast without holding several full-resolution frames in memory at once.