Why this tool is different
Most compressors give you a quality slider and leave you guessing. This one works backwards from the number the upload form actually checks. We search for the highest JPEG quality that still fits your target, and only reduce dimensions if quality alone cannot get there — then we tell you exactly what happened.
How it works
- 1
Choose a JPG, PNG or WebP image. We read the actual bytes, not the file extension.
- 2
Pick a target size, or type your own in KB.
- 3
We binary-search JPEG quality, then scale dimensions if needed, stopping at or under your target.
- 4
Download the result. The size shown is the size you get.
What to watch out for
Why "at or under", never exactly
Hitting an exact byte count would mean padding the file with junk data. Upload forms check that a file is not larger than a limit, so under is what matters. We stop with a small safety margin and never pad.
When dimensions change
For a very small target like 20KB, quality alone often cannot get a large photo there. We reduce dimensions proportionally in stages and report the final pixel size, so you can decide whether the result is still usable.
Common form limits
Government portals, job applications and exam registrations usually cap photos at 20KB, 50KB, 100KB or 200KB. Those presets are one tap away, and a custom field covers anything else.
Frequently asked questions
Can you compress a JPG to exactly 100KB?
We compress to at or just under 100KB, which is what an upload limit actually tests. Producing exactly 100,000 bytes would require padding the file, which we will not do.
Does compressing change the image dimensions?
Only if it has to. We try quality first and keep your original dimensions whenever the target is reachable that way. If it is not, we scale down in stages and show you the final dimensions in the result.
Why does my image look softer at 20KB?
A small target forces low JPEG quality, and often a smaller pixel size too. That is a property of JPEG, not of this tool. If the result is too soft, raise the target — 50KB or 100KB usually looks noticeably better.
My image is already under the target.
Then there is nothing to do, and we say so rather than re-encoding it and making it worse. Recompressing an already-small JPEG loses quality for no benefit.
Are my files uploaded to a server?
No. The conversion runs in JavaScript and WebAssembly inside your own browser. Open your devtools, switch to the Network tab and run a conversion — there is no upload request to see. Closing the tab clears the working session.