Compress Image
Shrink an image to a size you choose without it turning to mush — free, no watermark, no signup.
How it works
- Upload. Choose an image — JPG, PNG, WebP and more are accepted (up to 25 MB).
- Set quality. Drag the quality slider and pick an output format (JPG, WebP or PNG).
- Download. Your compressed image downloads automatically; the original is never kept.
About this tool
This image compressor re-encodes your picture at a quality level you control, so you decide the trade-off between file size and sharpness instead of accepting a fixed preset. Output as JPG or WebP for the smallest files, or as an optimized PNG when you need to keep transparency. It's ideal for speeding up web pages, getting under upload limits, or trimming photos before email. There's no watermark, no signup, and the image is processed in memory and never stored.
What people use it for
- Speed up a web page by serving lighter images
- Get a photo under a form or email size limit
- Convert to WebP for the smallest modern web images
- Batch-prep product photos for a store listing
Developer API
Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.
https://best.free/api/tools/image-compressor/
| Parameter | Example | Required | Notes |
|---|---|---|---|
file (file) |
photo.jpg |
Yes | JPG/PNG/WebP…, ≤25 MB. |
quality |
70 |
No | 10–95. |
format |
jpg |
No | jpg / webp / png output. |
curl -X POST https://best.free/api/tools/image-compressor/ \
-F 'file=@photo.jpg' \
-F 'quality=70' \
-F 'format=jpg' \
-o compressed.jpg
import requests
files = {"file": open("photo.jpg", "rb")}
data = {"quality": 70, "format": "jpg"}
r = requests.post("https://best.free/api/tools/image-compressor/", files=files, data=data)
with open("compressed.jpg", "wb") as out:
out.write(r.content)
const fd = new FormData();
fd.append("file", fileInput.files[0]);
fd.append("quality", 70);
fd.append("format", "jpg");
const r = await fetch("https://best.free/api/tools/image-compressor/", { method: "POST", body: fd });
const blob = await r.blob(); // the compressed.jpg
Response: The compressed image.