tooly

Compress JPG online

Shrink JPEG photos without visible quality loss. Everything happens in your browser, so your images are never uploaded anywhere.

Your files never leave your browser

How to use

  1. 1

    Drop your JPG, PNG or WebP files into the box, or click to choose them.

  2. 2

    Move the quality slider — lower values give smaller files.

  3. 3

    Download each compressed image or grab them all as a ZIP.

What the quality slider actually changes

JPEG splits a photo into 8×8 pixel blocks and describes each block as a mix of smooth gradients and finer patterns. The quality number decides how coarsely those patterns are rounded off before the data is packed. At high settings almost every fine detail survives; at low settings the encoder keeps the broad shape of each block and throws away the subtle texture inside it.

The relationship between quality and size is far from linear. Going from 100 to 90 often halves a file, because the top of the scale spends a lot of bytes on detail nobody can see. Going from 60 to 50 saves much less, while the damage becomes easier to spot. That curve is why the sweet spot for most photos sits between 70 and 85.

The slider runs from 10 to 100 and starts at 80. Whatever you pick is applied to every file you add afterwards; files that already finished keep the setting they were processed with, so remove them and drop them again if you change your mind.

Choosing a number for a specific job

Some starting points that hold up in practice:

  • 85–90: photos you may print, crop later or hand to a client. Differences from the original are hard to find even when zooming in.
  • 75–80: website content images, blog posts, product photos. This is the range where a typical phone photo loses most of its weight with nothing visible lost at normal viewing size.
  • 60–70: thumbnails, gallery previews, images in email newsletters. Fine texture such as hair or foliage softens slightly.
  • Below 50: only when size matters more than looks. Expect visible 8×8 blocks in skies and smudged edges around text.

The quickest way to settle on a value is a test: compress one representative photo at two settings, then put the results side by side in compare images. Look at three places where JPEG fails first: smooth gradients like sky or walls, sharp high-contrast edges, and saturated red or blue areas.

What else happens to the file

The tool decodes each image and re-encodes it with your browser's built-in JPEG encoder, in a background worker so the page stays responsive during long batches. A few side effects follow from that:

  • Output is always JPG. PNG and WebP are accepted as input; transparent areas are filled with white because JPEG has no transparency.
  • Dimensions stay the same. There is no resizing step here. For photos straight from a phone, resizing to around 1600–2000 px on the long side before compressing gives a far bigger saving than lowering quality.
  • Metadata is not carried over. Camera model, capture date and GPS location from the original are absent in the result. The photo is drawn the right way up, so it still displays correctly without the rotation tag. The exception is a JPG that could not be made smaller: it is returned untouched, metadata included, so use remove EXIF if that matters.
  • Results vary slightly by browser. Chrome, Firefox and Safari ship different JPEG encoders, so the same setting can give files a few percent apart.

Why some files barely shrink

Each file row shows the original and new size, so you can judge every result. When the saving is small or zero, the cause is usually one of these:

  • The JPG was already compressed. Images saved from messengers, social networks or many websites have been squeezed once. Re-encoding them at 80 when they were stored at 75 would even make them larger, because the encoder faithfully preserves the existing artifacts. When that happens the tool returns the original JPG unchanged and the row says the original was kept.
  • The source is a screenshot or graphic. Flat colours and sharp text are where JPEG is weakest. These are better kept as PNG and run through PNG compression.
  • The quality is set higher than the original. A setting of 95 on a file that started life at 80 adds bytes without adding detail.

PNG and WebP input always comes out as JPG, so a graphic converted this way can end up larger than the source; the row then shows how much larger. In that case keep the original.

Avoiding quality loss over time

JPEG compression is lossy every time it runs. Opening a JPG, editing it and saving again repeats the rounding on top of the previous rounding, and after several rounds the blocks become visible even at decent settings. Keep an untouched original of anything important, compress copies only once at the end of your workflow, and always start a new export from the original instead of from an already compressed file.

Files up to 50 MB each are accepted and you can drop as many as you need; they are processed one at a time and none of them leave your device.

FAQ

Are my photos uploaded to a server?

No. Compression runs entirely in your browser using the Canvas API. Nothing is sent over the network.

What quality should I choose?

80% is a good default for photos: usually 50–70% smaller with no visible difference. Use 60% for thumbnails or previews.

Can I compress several images at once?

Yes. Drop as many files as you like; they are processed one by one and you can download them all as a ZIP archive.

Is there a file size limit?

Files up to 50 MB each are supported. Larger images may run out of memory on mobile devices.

Does it work with PNG or WebP?

Yes. PNG and WebP input is accepted and the output is always a JPG. Transparent areas become white.

Read more

Related tools