Compress image to a target size
Tell it the size limit — 100KB, 200KB, whatever the form asks for — and it does the rest.
Using toolbook means you agree to our Terms and Privacy Policy.
We try different quality levels until your image fits just under this size. You’ll get a JPG back.
or drag them here
JPG, PNG, WEBP, or HEIC · as many as you like
Your files stay on your device
How to use it
Drop an image here and enter a size limit, like 100KB. You get the best-looking version that fits under it, ready to save. Your images stay on your device.
A form says “photo must be under 100KB” and you have a 4 MB picture. Sound familiar? Instead of guessing with a slider, just tell this tool the limit and it finds the best quality that fits.
Drop your images onto the box above. Pick a size like 100 KB, or type your own number, then click Compress. Every image comes out under your limit.
If a photo is very big and the limit is very small, the tool also makes the picture a bit smaller in pixels — and tells you when it does. If it truly can’t fit, it says so instead of handing you a file that’s too big.
You always get a JPG back, since that’s what upload forms accept most.
FAQ
How do I get an image under 100KB?
Drop it in, click 100 KB (or type 100), and press Compress. You get the best-quality version that fits.
Why is my file a bit under the limit, not exactly on it?
Image files can’t be made to an exact size, so the tool gets as close as it can without going over.
What if it can’t reach my size?
It tells you and gives you the smallest version it managed. Try cropping to just the part you need, then compress again.
Does it work with iPhone photos?
Yes. HEIC photos work directly — no need to convert them first.
Can I do several images at once?
Yes. Each one is sized separately, so every file comes out under the limit.
How it worksFor the curious
The tool runs a binary search over JPG quality: encode at a mid-range quality, measure the size, then adjust up or down. It converges in about seven attempts, and every attempt is a real encode, because the link between quality and file size depends entirely on the picture — a flat screenshot and a noisy photo at the same setting can differ in size tenfold.
If even the lowest usable quality overshoots, the pixel dimensions are reduced in steps. Quality is given up first because lost resolution is the more visible of the two.
Output is always JPG. PNG is lossless and ignores a quality setting, so hitting a byte target with PNG would mean shrinking dimensions only — that is the resizer’s job.
A JPG encoder cannot be asked for an exact byte count, only a quality level, so the result lands slightly under your limit rather than exactly on it. Each image in a batch is searched separately.