How to Make an Image Low Quality (Reduce File Size Fast)
Sometimes you need a smaller image, not a better one. Email attachments bounce back at 10 MB. Upload forms cap at 2 MB. Slow pages bleed visitors. A photo that looked great at full resolution needs to become a fraction of its original size — fast.
Reducing image quality is the most direct path to a smaller file. Not destroying it — compressing it. JPEG compression trades a small amount of visual detail for a dramatic drop in file size. At quality 85, you often can't see the difference. At quality 50, the file might be 80% smaller with tradeoffs that are perfectly acceptable for a web thumbnail or email preview.
Here's a quick comparison of your options:
| Method | Steps | Best For | Quality Control |
|---|---|---|---|
| Pixotter (online) | Drop → slider → download | Quick, browser-based, no install | Precise slider (1–100) |
| Preview (Mac) | Export → JPEG → slider | One-off Mac use | Slider (least/best) |
| Paint (Windows) | Save As → JPEG | Emergency use only | Limited |
| IrfanView (Windows) | Save As → JPEG → slider | Free Windows tool | 0–100 slider |
| ImageMagick CLI | One command | Automation, scripting | Exact quality value |
| Python Pillow | Script | Batch, programmatic | Exact quality value |
| sips (Mac CLI) | One command | Mac scripting | 0–100 value |
Reduce image quality instantly
Drop your image, adjust the quality slider, and download — free, no upload, runs entirely in your browser.
Make Images Low Quality Online (Pixotter Method)
Pixotter's compression tool handles quality reduction in your browser — no file ever leaves your machine, no account required, no upload waiting.
Step-by-step:
- Go to pixotter.com/compress/
- Drop your image (JPG, PNG, WebP, or GIF) onto the drop zone
- Use the quality slider to set your target — drag left to reduce quality and file size
- Watch the live size estimate update as you adjust
- Click Download to save the compressed file
The tool runs entirely via WebAssembly in your browser. Your image is processed locally — no server ever sees it. That matters when you're compressing client photos, medical images, or anything confidential.
Pixotter also supports batch compression: drop multiple images at once, set a quality level, and download them all. For high-volume work (a folder of product photos, a set of screenshots), this beats repeating the process file by file.
If you need to hit a specific file size rather than a specific quality level, see our guides on how to compress an image to 100KB, compress to 50KB, or compress to 200KB for target-size approaches.
Try it yourself
Reduce file size without visible quality loss — free, instant, no signup. Your images never leave your browser.
Reduce Image Quality on Windows
Paint (Built-in)
Paint's JPEG export gives minimal control, but it works in a pinch:
- Open the image in Paint
- File → Save As → JPEG picture
- Paint applies a fixed compression — you cannot set an exact quality value
The result is unpredictable. Paint's JPEG output quality varies by image content and Windows version. Use this only if you have no other option.
IrfanView 4.67 (Free, GPL)
IrfanView gives you a proper quality slider:
- Open the image in IrfanView
- File → Save As
- Select JPEG as the format
- Click Options — the JPEG Save Quality dialog appears
- Set a value between 0 and 100 (lower = smaller file, more compression)
- Save
Quality 70–80 hits a good balance for web use. Quality 40–60 produces visible compression artifacts but dramatically smaller files. IrfanView is free under the GPL license for personal and educational use.
PowerShell with System.Drawing (Developer Option)
For scripted or automated quality reduction on Windows:
Add-Type -AssemblyName System.Drawing
$img = [System.Drawing.Image]::FromFile("C:\input.jpg")
$encoder = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() |
Where-Object { $_.MimeType -eq "image/jpeg" }
$params = New-Object System.Drawing.Imaging.EncoderParameters(1)
$params.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter(
[System.Drawing.Imaging.Encoder]::Quality, 50L)
$img.Save("C:\output.jpg", $encoder, $params)
$img.Dispose()
Replace 50L with your target quality. This approach works well for batch processing in a PowerShell script — loop through a folder and apply the same quality reduction to every file.
Reduce Image Quality on Mac
Preview (Built-in)
Preview's export dialog gives you a simple quality slider:
- Open the image in Preview
- File → Export
- Set Format to JPEG
- Drag the Quality slider left (toward "Least") to reduce quality and file size
- Check the estimated file size shown below the slider
- Click Save
The slider labels ("Least" to "Best") are vague. For a concrete sense of the output: dragging to roughly one-quarter of the slider range produces approximately quality 40–50 in JPEG terms. Experiment and check the estimated size before saving.
sips (Mac Command Line)
sips ships with macOS and requires no installation. To reduce JPEG quality:
sips -s formatOptions 50 image.jpg --out output.jpg
Replace 50 with your target quality (0–100). To process an entire folder:
for f in ~/Photos/*.jpg; do
sips -s formatOptions 50 "$f" --out ~/Photos/compressed/"$(basename "$f")"
done
sips is fast and reliable for Mac automation. It handles JPEG natively; for PNG, convert to JPEG format first by adding -s format jpeg.
Reduce Image Quality with CLI Tools
CLI tools give the most precise control and integrate cleanly into build pipelines, CI/CD, and batch scripts.
ImageMagick 7.1.x (Apache 2.0)
magick input.jpg -quality 50 output.jpg
The -quality flag maps directly to JPEG quality (1–100). For PNG, it controls the zlib compression level differently — to reduce PNG file size, use -quality 00 through -quality 99 where the tens digit is zlib level and the ones digit is filter strategy. For straightforward JPEG compression, the command above is what you need.
To batch process a directory:
magick mogrify -quality 50 -path ./compressed *.jpg
ImageMagick 7.1.x is licensed under Apache 2.0. Install via Homebrew (brew install imagemagick) on Mac or the official Windows installer.
mozjpeg 4.1.x (BSD License)
mozjpeg produces smaller JPEG files than standard libjpeg at the same quality setting — useful when you need the smallest possible output:
cjpeg -quality 50 input.ppm > output.jpg
Note that cjpeg takes PPM input, not JPEG. Convert first:
djpeg input.jpg | cjpeg -quality 50 > output.jpg
mozjpeg is licensed under a BSD-style license. Install via Homebrew (brew install mozjpeg) or build from source on Linux.
FFmpeg 7.x (LGPL/GPL)
FFmpeg handles images in addition to video. The -q:v flag controls output quality (lower = better quality, higher = more compression, range 2–31):
ffmpeg -i input.png -q:v 15 output.jpg
A -q:v of 15–20 produces noticeably compressed output. A value of 25–31 is aggressive. FFmpeg 7.x is available under LGPL (core) and GPL (with optional components). Install via Homebrew or the official FFmpeg builds.
Python Pillow 10.x (HPND License)
Pillow is the standard choice for image processing in Python scripts:
from PIL import Image
img = Image.open("input.jpg")
img.save("output.jpg", quality=50, optimize=True)
Add optimize=True to enable Huffman table optimization — it reduces file size by another 5–10% at no quality cost. To batch process:
from pathlib import Path
from PIL import Image
input_dir = Path("./originals")
output_dir = Path("./compressed")
output_dir.mkdir(exist_ok=True)
for img_path in input_dir.glob("*.jpg"):
img = Image.open(img_path)
img.save(output_dir / img_path.name, quality=50, optimize=True)
Pillow 10.x is licensed under HPND (Historical Permission Notice and Disclaimer), a permissive open-source license. Install with pip install Pillow==10.4.0.
How Image Quality and File Size Are Related
JPEG uses lossy compression — it permanently discards image data to achieve smaller file sizes. The quality parameter (1–100) controls how aggressively it discards that data.
A quality of 100 applies minimal compression. The file is nearly as large as the original, with nearly all original detail preserved. A quality of 1 compresses as hard as possible, producing the smallest possible JPEG — and severe visible artifacts, smearing, and color banding.
In practice, the useful range for most purposes is 20–90:
| Quality Setting | Approximate File Size Reduction | Visual Result |
|---|---|---|
| 85 | ~50–60% smaller | Barely distinguishable from original |
| 70 | ~65–70% smaller | Minor artifacts visible at 100% zoom |
| 50 | ~75–80% smaller | Noticeable compression, acceptable for web/email |
| 30 | ~85–90% smaller | Clear artifacts, suitable for thumbnails only |
| 20 | ~90–92% smaller | Aggressive, blocky artifacts visible |
These are rough guides — actual reduction depends on image content. A photo of a forest (lots of fine detail) compresses differently than a simple product photo on a white background.
PNG uses lossless compression by default. Lowering "quality" in PNG terms means increasing the zlib compression level (slower to encode, same file on decode) or, more practically, converting to JPEG. If your goal is a smaller PNG, see our guide on how to compress PNG files — the approach differs from JPEG compression.
For the full explanation of lossy versus lossless compression and when each is appropriate, see Lossy vs Lossless Compression.
Quality Settings by Use Case
Different situations have different acceptable quality floors. This table saves you the guesswork:
| Use Case | Recommended Quality | Typical File Size Reduction | Notes |
|---|---|---|---|
| Email attachments | 60–70 | 65–75% | Most clients cap at 10–25 MB; quality 70 keeps images presentable |
| Social media uploads | 75–85 | 50–65% | Platforms re-compress on upload; start higher to survive their pass |
| Web thumbnails | 50–65 | 70–80% | Small display size hides artifacts; prioritize speed |
| Web hero images | 80–85 | 50–60% | Full-width visibility; needs to look clean |
| Upload form limits | 40–60 | 75–85% | When you need to hit a hard byte ceiling |
| Archival copies | 90–95 | 30–40% | Keep quality high; storage is cheap |
| Print (digital proof) | 85–95 | 40–55% | Artifacts show at print resolution; keep quality high |
| Bandwidth-constrained (mobile) | 55–70 | 65–75% | Saves real data for users on metered connections |
If you're hitting a specific file size limit rather than targeting a quality level, the how to reduce image size guide covers target-size compression strategies. The compress JPEG guide goes deeper on JPEG-specific optimization. For tight upload limits, see compress to 50KB or compress to 200KB.
Make any image smaller in seconds
Compress JPG, PNG, WebP, and GIF — adjust quality, set target size, batch process. Free and private.
FAQ
Does reducing image quality permanently damage the file?
Yes — JPEG compression is lossy and irreversible. Once you save a JPEG at lower quality, the discarded data is gone. Always keep the original file and export a compressed copy. Never overwrite your source. PNG compression is lossless, so quality settings don't destroy PNG data — but converting a PNG to JPEG for size reduction is lossy.
What quality setting should I use for email?
Quality 65–75 works well for most email use cases. The image stays recognizable and clean at normal viewing sizes, and file size drops to a fraction of the original. If your email client is bouncing attachments over a size limit, try quality 55 and check whether the result looks acceptable on a phone screen.
Why does my image get bigger when I re-save a JPEG at high quality?
JPEG encoders include Huffman tables and metadata in the file header. If you open an existing JPEG and save it at quality 95 or 100 in some applications, the encoder may produce a larger file than the original — because the original used optimized Huffman tables and yours doesn't, or because the encoder adds metadata. For the smallest possible JPEG, use optimize=True in Pillow or the -optimize flag in ImageMagick.
Can I reduce image quality without converting the format?
Yes — re-saving a JPEG at a lower quality value keeps the JPEG format. The same applies to WebP. PNG, however, doesn't have a meaningful "quality" setting in the same sense. Reducing a PNG's file size means either increasing lossless compression (takes longer, same visual result) or converting to JPEG or WebP. If you need a smaller PNG that stays PNG, see the compress PNG guide.
How do I reduce image quality in bulk without doing it one by one?
Pixotter supports batch compression — drop multiple files at once. For command-line batch processing, ImageMagick's mogrify command handles entire directories: magick mogrify -quality 60 -path ./output *.jpg. Python Pillow is ideal for scripted batch work where you need more control (per-file quality, different settings by file size, logging output).
What's the difference between reducing quality and resizing an image?
Reducing quality keeps the same pixel dimensions but discards fine detail to shrink the file. Resizing reduces the pixel dimensions, which also reduces file size but changes how large the image appears. For a web thumbnail, resizing to the actual display dimensions (say, 400×300 pixels) combined with quality 75 produces a much smaller file than quality reduction alone — because you're eliminating both surplus pixels and surplus detail. Often the right answer is both: resize first, then compress.
Try it yourself
Resize to exact dimensions for any platform — free, instant, no signup. Your images never leave your browser.