Image Tools

Compress images without a visible loss of quality

Reduce JPG, PNG and WebP file size by choosing the right format, quality and width. A worked example and a checklist for judging the result before you save.

Three settings decide how small an image gets

A smaller image file comes from some combination of three choices: the format, the pixel dimensions and the quality setting. Reducing unnecessary dimensions can make a substantial difference. The number of pixels grows with the square of the width, so halving the width leaves about a quarter of the pixels to store.

Take a 4000 × 3000 photo, which has 12,000,000 pixels. Limited to a width of 1920, it becomes 1920 × 1440, or 2,764,800 pixels, roughly 23% of the original. That removes about 77% of the pixels before encoding; the byte-size saving still depends on the image, format and quality. Choose enough pixels for the intended layout and display density, then compare the exported result.

Quality only applies to lossy formats such as JPEG and WebP. Lossy compression discards detail that is hard to see, so smaller files look slightly different from the original. PNG encoding is lossless, which suits screenshots, logos and flat colors but can make a photograph larger. Resizing still changes the pixel dimensions, even when the output format is PNG.

Worked example: a photo for a web page or a form

  1. Open Image Compressor and add your photo. Keep the original file somewhere safe; you will compare against it.
  2. Choose Keep original type for a JPEG, or WebP if the destination accepts it.
  3. Set quality to about 80%. For ordinary web photos the tool suggests 60–80%.
  4. Set Max width to the widest size the image will actually be shown at. 1920 is plenty for most pages, and a form that only needs a thumbnail may need far less.
  5. Select Compress images. The tool compares each result with the original size so you can see the saving before downloading.
  6. Open the downloaded file and inspect it at 100% zoom (see the checklist below). If it looks worse than you can accept, raise the quality a little and compress the original again.

If the file is still too large, reduce the max width before lowering quality further. Pushing quality below roughly 60% tends to produce visible blocks and halos long before it saves as much as a smaller image would.

Choosing a format

Which format fits which image
FormatGood forWatch out for
JPEGPhotographs and images with smooth gradientsNo transparency. Transparent areas will not stay transparent, and repeated re-saving adds loss each time.
WebPPhotos and graphics where the destination supports itNot every older program or upload form accepts it. This tool uses lossy WebP.
PNGScreenshots, logos, text and flat colorsOutput is always lossless here, so a photo saved as PNG can end up larger than the JPEG you started with.

Re-encoding is not guaranteed to shrink every image. A file that was already heavily compressed can come out the same size or larger. When that happens, keep the original.

A quick checklist before you use the result

  • Zoom to 100%. Look at faces, small text, thin lines and sky or other smooth gradients, where banding and blocks show first.
  • Compare the byte sizes. Confirm the new file is actually smaller and meets the limit you were given.
  • Always start from the original. Compressing an already compressed JPEG again stacks the loss. Adjust the settings and run the original through again.
  • Check transparency. If the image needs a see-through background, keep it as PNG or WebP and verify the output.

What happens to your files

The page loads its application files from this website. After you choose images, your browser decodes each one, draws it onto an in-memory canvas at the size you set and re-encodes it with the browser’s own image encoder. The tool does not upload the images to a server and does not need an account.

Because the picture is redrawn and re-encoded, information that is not pixel data, such as camera details or location tags, is generally not copied into the new file. Treat that as a side effect rather than a privacy guarantee, and check the output yourself if it matters. Details of how the browser handles the quality value and unsupported formats are described in the MDN documentation for canvas.toBlob().

The tool accepts up to 25 files at a time, each up to 40 MB. Very large photos can need a lot of memory while they are decoded, so on a phone, compress a few at a time.