Image Compressor
Shrink JPG, PNG, or WebP files without visible quality loss. Ideal for websites, email, and social - everything runs locally.
Big product photos and camera exports slow down websites and blow past email attachment limits. This tool re-encodes JPG, PNG, or WebP images through the browser's Canvas API at a quality level you control, typically cutting file size 60-90% with minimal visible difference at normal viewing sizes. It's the fastest fix when you just need a smaller file and don't need to change dimensions or format - pair it with the Image Resizer first if the image is also physically larger than you need.
Runs on your device. This tool processes your file inside this browser tab. Nothing is uploaded, so it also works offline once the page has loaded, and closing the tab discards the file from memory.
Loading tool
How it works
- 01
Drop or select your JPG, PNG, or WebP image.
- 02
Drag the quality slider to balance file size vs. sharpness.
- 03
Click Compress and download the smaller file.
Details
- Category
- Images
- Runs
- In your browser
- Files uploaded
- No
- Cost per run
- Free
- Sign-in
- Not required
- Works offline
- Yes, once loaded
Last updated 2026-08-12
Common questions
How does it compress?
Re-encodes via Canvas + your chosen quality. JPEG and WebP typically cut size 60–90%.
Which format compresses smallest?
WebP usually produces the smallest file at a given visual quality, followed by JPEG. PNG stays lossless so it compresses less aggressively.
Will this resize my image too?
No - dimensions stay the same. Use the Image Resizer first if you also need smaller pixel dimensions.
Does it upload my photos?
No. Compression runs entirely in your browser on a canvas - nothing is sent to a server.
Use this from your code
This tool is also a REST endpoint, so you can run it in a pipeline instead of by hand. Each call costs 2 credits and needs an API key. See the API reference for every parameter.
curl -X POST https://fileoven.com/api/v1/tools/image-compress \ -H "Authorization: Bearer sk_live_..." \ -F "file=@input.png" \ -o compressed.jpg