Guide · · 6 min read

Compress JPG without losing visible quality

In short

Re-encode once at quality 70–85 with a modern encoder such as MozJPEG, strip metadata, and always start from the best original you have. The result is usually 40–70% smaller and looks the same at normal viewing size.

Do it now, privatelyCompress JPG

The short answer

JPG is a lossy format, so any re-encode throws away some data. What you can do is throw away only the data your eyes can’t see. In practice, a photo saved once at quality 70–85 with a good encoder is usually 40–70% smaller than a typical camera or phone export, and you won’t spot a difference without zooming far in and comparing side by side.

The fastest way to do that is to drop your files into Compress JPG and leave the quality at the default of 75, or let Optimize JPG pick the quality for you.

Visually lossless vs. mathematically lossless

These two terms get mixed up, and it matters which one you need.

Mathematically lossless Visually lossless
Pixels Identical, bit for bit Slightly different, but not noticeable
Typical saving on a JPG Small (a few percent, mostly from metadata and Huffman tables) Large (often 40–70%)
When you need it Archives, forensic or legal evidence, files you’ll edit heavily later Websites, email, sharing, uploads, portfolios

If you must keep every pixel exactly as it is, you can only remove metadata or repack the file. For a photo going on a website or into an email, visually lossless is the right goal. Nobody sees the bytes. They see the picture.

Why quality 70–85 is the sweet spot

The JPG quality number isn’t a percentage of anything. It’s a scale that controls how coarsely the encoder rounds off fine detail in 8×8 pixel blocks. The relationship between quality and file size is far from linear:

  • Quality 95–100: Files get very large for almost no visible gain. Many phones and cameras save near this level, which is why their photos compress so well.
  • Quality 85–90: Safe for photos with fine texture, such as fabric, foliage, or hair, and for images people will zoom into.
  • Quality 70–80: The best balance for most photos on screens. Pixellin’s JPG compressor defaults to 75.
  • Below 60: Artifacts start to show, such as blocky skies, smeared skin tones, and ringing around sharp edges and text.

Start at 75. If you see blockiness in smooth gradients, such as a blue sky or a studio background, raise it to 80–85. If the image will display small, such as a thumbnail, you can go lower.

What MozJPEG adds

Not all JPG encoders are equal. Pixellin compresses JPG with MozJPEG, an encoder tuned to produce smaller files at the same visual quality. It does this in a few ways:

  • Trellis quantization makes smarter rounding decisions block by block, so less detail is wasted on noise.
  • Optimized Huffman tables are built for each image instead of using generic ones, which trims size without changing a single pixel.
  • Progressive encoding stores the image in several passes. It’s usually a little smaller than baseline, and in a browser it shows a rough version early and sharpens as it loads.

The result is that MozJPEG at quality 75 often looks as good as a basic encoder at a noticeably higher setting, at a smaller file size.

Chroma subsampling, briefly

JPG stores brightness (luma) and color (chroma) separately. Human vision is much more sensitive to brightness detail than to color detail, so most encoders store color at half resolution in both directions. This is called 4:2:0 subsampling.

For ordinary photos, 4:2:0 is invisible and saves a lot of space. It can show up as faint color fringing on sharp, saturated edges, such as red text on a white background or thin colored lines in a diagram. If your image is mostly text, a screenshot, or flat graphics, JPG is usually the wrong format anyway. Use PNG or WebP instead.

Strip metadata you don’t need

Photos from phones and cameras carry EXIF metadata such as camera model, exposure settings, timestamps, sometimes GPS coordinates, and often an embedded thumbnail. This can add anywhere from a few KB to over 100 KB per file. That matters a lot for small web images.

Optimize JPG strips metadata automatically. If you only want to remove metadata and keep the pixels exactly as they are, which is the truly lossless option, use Remove EXIF Data.

Never re-compress the same JPG over and over

Each time you open a JPG, edit it, and save it as JPG again, the encoder rounds off detail again. The losses stack up. This is called generation loss. After several rounds you get muddy textures and halos around edges, even at high quality settings.

To avoid it:

  1. Keep your original (camera file, phone photo, or design export) untouched.
  2. Do all editing, cropping, and resizing from that original.
  3. Compress once, as the very last step, and only for the copy you’re publishing or sending.
  4. If you need a different size later, go back to the original instead of shrinking the compressed copy.

Pixellin won’t make a file bigger. If a JPG is already well compressed and re-encoding wouldn’t help, the original is kept and labeled “Already optimized.”

Step by step: compress JPG files with Pixellin

Option 1: Choose the quality yourself

  1. Open Compress JPG.
  2. Drop your photos onto the page, choose them from your device, or paste with Ctrl+V (Cmd+V on a Mac). You can add up to 200 files at once.
  3. Leave quality at 75, or adjust it. Use 80–85 for detailed photos and 65–75 for web thumbnails.
  4. Select Process. Each file shows its original size, new size, and the percentage saved.
  5. Download files one by one, or select Download all to get a ZIP.

Option 2: Let Pixellin pick the quality

  1. Open Optimize JPG.
  2. Add your photos and select Process.
  3. Pixellin encodes each photo at several quality levels, measures how similar each version is to the original using SSIM, and keeps the smallest one that stays above a “visually identical” threshold. Metadata is stripped. You can optionally cap the long edge at 1920, 2560, or 3840 px.

This is the better choice for a mixed batch. A detailed landscape and a plain product shot each get their own quality setting instead of one number for everything. If you want to control how strict the similarity check is, the Image Quality Optimizer lets you choose Balanced, High, or Visually identical and shows the chosen quality and similarity score for each file.

Everything runs in your browser. Your photos are never uploaded.

Quick checks before you publish

  • View at 100%, not zoomed in. Judge the image at the size people will actually see it.
  • Look at smooth areas first. Skies, walls, and skin show artifacts before detailed areas do.
  • Check the dimensions. A 4000 px wide photo shown at 800 px wastes most of its bytes. Resizing to the display size often saves more than any quality change. The guide to reducing image file size covers this.
  • Consider WebP or AVIF for websites. At the same visual quality they’re usually smaller than even a well-tuned JPG. See WebP vs. JPG.

When not to compress

Leave the file alone if it’s a master you’ll edit again, a photo you’re submitting to a printer who asked for maximum quality, or evidence where the exact original bytes matter. In those cases, remove metadata losslessly if privacy is a concern, and keep the pixels as they are.

Tools used in this guide

Related guides