ToolZen ToolZen
Graphics compressor client

Image Compressor

Compress and optimize images directly in your browser. Reduce file size with adjustable quality, convert format and resize — 100% client-side, no upload to servers.

Advertisement (Top Banner)

Drop an image here or click to upload

JPG · PNG · WebP · GIF · BMP

Advertisement (Bottom)

Images are almost always the heaviest thing on a page, and most of that weight is avoidable. This tool decodes your image, optionally resizes it, and re-encodes it at a quality you choose — all inside your browser. Understanding what "re-encodes" implies is the difference between using it well and quietly ruining your photographs.

Resizing beats quality, by a wide margin

The single biggest win is almost never the quality slider. It is the max width. A 4000-pixel-wide photo displayed in a 800-pixel-wide column is carrying sixteen times more pixels than anything on screen can use — the browser downsamples it on every page load and the user pays for all of them.

Halving the dimensions quarters the pixel count, and that is a straight, lossless-looking reduction: the image still looks perfect because there was never any way to see the detail you removed. Dropping quality from 90 to 60 saves far less and is visible. Resize first, and only then reach for quality.

The quality slider does nothing for PNG

This surprises people, and it is worth stating flatly: PNG is a lossless format. There is no quality dial to turn. Ask a browser canvas for a PNG at 10% and at 100% and you get byte-for-byte identical output — we measured 63,960 bytes at every setting.

That is why this tool disables the slider when PNG is selected, rather than leaving you to drag something that cannot work. If your PNG is too big, the levers that exist are dimensions, and reducing the number of distinct colours — the technique that tools like pngquant use. Neither is the quality slider, because there is no such thing.

The corollary is the format choice itself. PNG is the right answer for screenshots, logos, line art and anything with sharp edges or transparency. It is the wrong answer for photographs, where it will produce a file several times larger than a JPEG nobody could tell apart from it. If you are compressing a photograph and the output is enormous, check the format before you touch anything else.

Re-encoding is not the same as compressing

A browser cannot compress a JPEG in place. What actually happens is that it decodes the file to raw pixels and encodes a brand-new JPEG from them. That distinction matters because JPEG is lossy in both directions: the decode recovers an approximation of the original, and the encode throws away more.

So compressing an already-compressed JPEG is a second generation, not a refinement. Do it repeatedly and artefacts accumulate — this is why an image forwarded through five chat apps ends up looking like it was fried. Always re-encode from the highest-quality original you have, not from something that has already been through the mill. And there is no going back: raising quality on a file that was saved at 40 does not recover the detail, it just wraps the artefacts in more bytes.

Your metadata does not survive, and that is mostly good

A canvas holds pixels, nothing else. Everything wrapped around them in the original file — EXIF, the camera model, the timestamp, the copyright field, the colour profile, and the GPS coordinates of where the photo was taken — is gone from the output.

For publishing on the web this is a feature and a meaningful privacy win. Photos taken on a phone routinely carry the exact location they were shot, and an alarming number of images on the internet are broadcasting somebody's home address. Stripping that is the right default.

It is a loss in two cases. If you need the copyright or author fields preserved, this is the wrong tool. And if the original relied on an embedded colour profile — a photo in Adobe RGB or Display P3 — dropping it means the browser will interpret the pixels as sRGB, and the colours will shift. Saturated reds and greens go flat. If your output looks washed out compared to the input, that is what happened.

Where the quality numbers actually sit

JPEG quality is not a percentage of anything and the scale is not linear. In practice: above about 90 you are spending a great many bytes on differences no one can see. Around 75 to 85 is the range where photographs look untouched to a normal viewer. Below about 60, blocking artefacts start showing up in smooth gradients — skies and skin are where you will notice first.

The default of 80 here is deliberate. It is worth knowing that these numbers are not comparable between encoders: quality 80 in this browser and quality 80 in Photoshop are different settings that happen to share a number.

Common questions

Is my image uploaded anywhere?

No. This tool is marked "client": the file is read into your browser, decoded and re-encoded by your own machine, and never sent. That is worth knowing given how many compression sites do upload — you are handing a stranger a photo that, until they strip it, still contains where and when it was taken.

Why is my compressed file bigger than the original?

Usually a format mismatch: you fed in a JPEG photograph and asked for PNG out. PNG cannot compress photographic noise, so the result balloons. It can also happen when the original was already saved at a lower quality than you have selected — re-encoding at 90 something that arrived at 60 adds bytes and recovers nothing.

Should I use WebP?

For the web, yes — every browser in use supports it, and it is typically 25 to 35% smaller than JPEG at the same visual quality. The caveat is everything that is not a browser: some desktop software, older email clients and various upload forms still reject it. If the image is going onto a web page, WebP. If someone might download and open it in whatever they have, JPEG remains the safe choice.

Why does my image look washed out after compressing?

The colour profile was dropped. If the original was tagged Adobe RGB or Display P3, its pixel values only mean the right colours when read alongside that profile. Once it is stripped, the browser reads them as sRGB and everything saturated shifts toward flat. Converting the image to sRGB before compressing avoids this, because then the numbers and the assumption agree.

Is there a size limit?

None imposed here, but your device imposes one. The image is decoded to raw pixels in memory, and raw pixels are four bytes each: a 50-megapixel photo is 200 MB of memory before anything else happens. Very large images will make the tab struggle, and on a phone they may simply fail. That is a hardware limit, not a rule of the tool.