Toolvore

Image Compressor

Compress JPG, PNG and WebP images to a smaller file size — or to an exact target size like 100 KB.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Squeezes a photo down to a smaller file — either by choosing a quality level, or by naming the exact size you need, which is the useful mode when a form refuses anything over 100 KB.

How to use it

  1. 1Drop in a JPG, PNG or WebP; its dimensions and current size appear.
  2. 2Choose the output format, then pick 'Quality level' or 'Target file size'.
  3. 3For a target, type the KB limit — the tool searches for the highest quality that still fits — then download.

Example

Input
A 576 KB JPEG, target size set to 60 KB
Output
58.9 KB at quality 23 — under the limit, dimensions unchanged

Target mode binary-searches the quality setting — eight probes between 0.05 and 0.95, measuring the real encoded size each time — and only shrinks the dimensions if even the lowest quality overshoots, retrying at 75% scale up to six times. Because it measures actual bytes rather than estimating, the result is genuinely under your limit. If a file is already well compressed it may come back no smaller, and the tool says so rather than handing back the same bytes under a new name.

What happens to your data

Compression is done by drawing to a canvas and re-encoding, so the quality you get is your browser's own JPEG or WebP encoder, not a server's. The image is read through a local blob URL and never uploaded — this tool used to POST the file to our API, and that was removed precisely because it contradicted the promise made on every page.

Last updated August 2026

Almost every request to compress an image comes with a number attached: a form that refuses anything over 100 KB, an upload that caps at 2 MB, a page that loads too slowly. Guessing at a quality slider until the file happens to fit is the slow way to meet one.

This does both. Pick a quality level if you just want the photo smaller, or name the size you actually need — compress an image to 100 KB, to 50 KB, to whatever the form demands — and let the tool find the highest quality that still fits. It works on JPG, PNG and WebP, and nothing is uploaded.

It is worth knowing which lever is actually doing the work. Quality decides how much detail the encoder discards; dimensions decide how many pixels there are to encode at all. Halving an image's width removes three quarters of its pixels, which almost always beats pushing quality down — and looks better, because the detail that survives stays clean rather than getting smeared. Reach for the quality slider once the image is already the size it needs to be.\n\nTo compress image files is asked for under a pile of names \u2014 reduce image size, compress JPEG, compress photo, an image compressor online \u2014 and usually with a number attached. That is the case this was built for: compress image to 100kb, or to whatever ceiling a form has set, by measuring the real encoded bytes rather than guessing at a quality slider.

How it works

Toolvore re-encodes the picture through a canvas in your browser and, in target mode, binary-searches the quality setting: it encodes, measures the real byte count, and narrows until it has the best quality that still comes in under your limit. Because it measures actual encoded bytes rather than estimating, the result is genuinely under the number rather than near it. Dimensions are left alone unless even the lowest quality overshoots, at which point shrinking the image is the only thing left that can work. There is a floor to this that is worth expecting. An image that has already been compressed once carries the artefacts of that pass permanently, and compressing it again works on the damaged version rather than the original — so a photo saved, sent, saved again and then compressed here has less room left than the same photo straight from a camera. Where you have the original, start from it.

Common use cases

  • Meeting an upload limit on a form — compress a photo to 100 KB or 50 KB exactly
  • Reducing image size for a web page so it loads faster on a phone
  • Shrinking a picture before emailing it so the attachment goes through
  • Compressing a JPEG from a camera that produces needlessly large files
  • Converting and compressing a PNG screenshot to a much smaller WebP or JPEG

Frequently asked questions

How do I compress an image to 100 KB exactly?

Switch the mode to target file size and type 100. The tool encodes repeatedly, measuring the real size each time, and gives you the best-looking version that is still under 100 KB. Compress an image to 50kb, to 200 KB, or to any other limit the same way — the search is the same, only the ceiling changes.

Does compressing lose quality?

For JPEG and WebP, yes — that is how they get smaller, and the point of the quality setting is to choose how much. PNG is lossless, so compressing a PNG mostly means converting it to a format that can actually be compressed. The preview shows you the result before you download it.

Can it compress PNG as well as JPEG?

Yes, and it can convert between them. A screenshot saved as PNG will usually get dramatically smaller as a WebP or a JPEG, because PNG is not designed for photographic content.

Why did my file come back barely smaller?

Because it was already well compressed. There is no free space left in a file that has been through this once already, and the tool will tell you rather than quietly handing you the same bytes back with a new name.

Is my photo uploaded to compress it?

No. The image is decoded and re-encoded by your own browser. Nothing is sent to a server, which is why it still works with the network disconnected.

What size limit am I actually up against?

It depends who is asking. Web forms commonly cap uploads at 2 MB, government and university portals often at 100–500 KB, and email attachments at roughly 20–25 MB for the whole message including encoding overhead. Where a hard number is given, aim comfortably under it rather than exactly at it: encoding is not perfectly predictable and a file that is a hair over is refused the same as one twice the size.

Should I resize the image instead?

Usually, yes, and often instead of compressing rather than as well. If a photo is 4,000 pixels wide and the page it lands on shows it at 800, three quarters of the data is being sent to be thrown away by the browser. Resizing to the size it will actually be displayed at is the single biggest saving available, and unlike quality reduction it costs nothing visible.

Which format should I compress to?

JPEG for photographs, PNG for flat graphics and screenshots, WebP for either if the destination accepts it — it is typically a quarter smaller than JPEG at the same visual quality and keeps transparency. The reason not to reach for WebP by default is reach rather than quality: a few older systems and print workflows still will not take it.

Used in these workflows