Upload forms for ID photos, signatures, visas, job applications, and exams often say the same thing: the picture must be no larger than 100 KB, or between 20 and 50 KB. A phone photo is several megabytes, so it needs to be shrunk by a factor of thirty or more, and the usual advice is to keep trying a quality slider until the number is right. This page does that search for you. You give it the size, and it finds the best-looking version of the picture that fits.
Most pages that do this say nothing about what they changed. This one tells you: the quality it settled on, whether it had to make the picture smaller, the exact number of bytes, and a side-by-side view of the original and the result. Everything happens in your browser, and the code behind the page makes no network requests, so your picture is not uploaded. That matters for a photo of your face or a scan of an identity document.
How to use the Compress Image to 100KB, 50KB, 20KB or Any Size
- Set the sizeType the largest size the form allows, or choose a common one such as 20 KB, 50 KB, 100 KB, or 200 KB. If the form also has a minimum, open the settings and enter it.
- Add your picturesDrop one or more pictures on the page, or choose them from your device. JPEG, PNG, WebP, GIF, and AVIF work in most browsers.
- Check the resultEach picture shows its new size, its quality, its dimensions, and the original next to the result. If the picture had to be made smaller, the page says so and why.
- Adjust if it looks too softIf the picture is too blurry, ask for a larger size, lower the quality limit so more pixels are kept, or limit the width and height yourself so the picture is smaller and sharp instead of large and blocky.
- Download itDownload the picture, or all of them as one ZIP file. The file is named with the size, such as photo-100kb.jpg.
How the tool finds the right quality
A JPEG or WebP file has a quality setting, and the file size goes up and down with it. The relationship is steady but not simple: it depends on how much detail the picture has. A photo of a clear sky might drop to 40 KB at a high quality, while a picture of leaves needs a low quality to get under 100 KB. So no single quality works for every picture.
The tool measures instead of guessing. It saves the picture at a high quality, checks the size, and then narrows the range, trying the middle quality each time, until it finds the highest quality whose file is still under your limit. That takes about eight attempts, and every number it reports is one it actually measured, not an estimate. If the picture already fits at a high quality, it stops there and does not make it worse than it needs to be.
When the quality alone is not enough
A picture of 12 megapixels cannot always reach 20 KB by quality alone, because below a certain quality a JPEG turns into visible blocks. The Wikipedia article on JPEG describes the cause: a lower quality discards more of the fine detail, and the picture is left with only the coarse shapes. So the tool sets a floor, 50 percent by default, and when the full-size picture is still too large at the floor, it makes the picture smaller by reducing the number of pixels.
It estimates how much smaller from the measured size and refines the guess a few times, so the picture ends up only as small as it has to be. Then, with fewer pixels to store, it raises the quality again as far as the limit allows. A smaller, cleaner picture usually looks better than a large, blocky one. If you want the opposite, lower the floor in the settings, or switch off the option to make the picture smaller, and the tool keeps every pixel and lowers the quality further.
- Quality first: the pixels are kept until the quality reaches the floor.
- Then smaller: only as small as needed, never smaller.
- Then quality again: the best quality that fits at the new size.
- Never larger: a small picture is not enlarged to fill a minimum.
Why 100 KB is not always 100 KB
Programs and websites disagree on what a kilobyte is. Some count 1,000 bytes and some count 1,024. NIST describes the origin of the confusion: computer professionals used kilo for 1,024 because it was close to 1,000, and the IEC later introduced the names kibibyte and mebibyte for the binary counts. A form that says 100 KB might mean either, and the difference at 100 KB is 2.4 percent, which is enough to turn a pass into a rejection.
The default mode is safe under both. A maximum is counted as 1,000 bytes per KB, so the file is under the limit whichever way the form counts, and a minimum is counted as 1,024, so the file is over it either way. If you know how the form counts, you can choose it in the settings and get a little more room. The result always shows the size both ways, together with the exact byte count.
A minimum size, and the padding option
Some forms reject a file that is too small, with a range such as 20 to 50 KB. The tool keeps the quality as high as the maximum allows, and raises it to the top if the picture is smaller than the minimum. If that still falls short, as it can with a small or plain picture, there are two honest options: use a larger picture, or add padding.
Padding adds comment segments to a JPEG file. In the JPEG format a comment is a block of text, marked FF FE, that a program reads past and ignores. The picture is not touched: a padded file was decoded with an independent decoder while this tool was built, and it gave exactly the same pixels. The padded data is placed before the picture data, after the header the format requires first. Padding only works with JPEG output, and the page says so when you ask for something else.
What happens to hidden data
A photo from a phone carries hidden data: the date and time, the device model, sometimes the exact place it was taken. The tool does not copy the picture file. It decodes the picture to its pixels, draws them, and saves a new file, and the new file contains only what the browser writes by default. MDN describes a resolution of 96 dpi, and when this tool was tested in Chrome the file also held a small standard color profile. The location, the camera details, and the time are not in it.
The camera's rotation is applied before this happens. MDN notes that the browser orients an image from its EXIF data by default, so a portrait photo stays upright when the rotation data is dropped. If you only want to remove the hidden data and keep the file as it is, use the EXIF remover instead, which does not re-encode the picture.
Choosing a format
JPEG is the safe choice, because every upload form accepts it and the padding option works with it. WebP files are usually smaller at the same quality, which helps if you need the best look at a very small size, but many forms do not accept WebP. The tool checks whether your browser can save WebP and turns the option off when it cannot, because some browsers quietly save a PNG file when asked for a format they do not support.
A PNG is not offered as the result. A PNG is lossless, so the browser gives it no quality setting to lower, and the only way this tool could make one smaller is to reduce the pixels. A PNG you add is converted to the format you chose, with transparent areas filled with the background color from the settings, because JPEG cannot hold transparency.
Limits and accuracy
- Results depend on the browser. Each browser has its own JPEG and WebP encoder, so the same picture can come out a few percent different in another browser. The size limit is always respected in the browser you use.
- A very small target can make a large picture unreadable. A target of 20 KB for a scan of a page of text is usually too small to read. Use a larger size, or photograph the document closer.
- The tool cannot enlarge a small picture to reach a minimum, and it does not make one up. It raises the quality, and then offers invisible padding for JPEG files.
- The picture is decoded by your browser, so formats the browser cannot open cannot be used. Some browsers cannot open HEIC photos from an iPhone.
- A picture of more than a few dozen megapixels may be too large for a phone to process. If the page reports an error, use a smaller picture or a desktop browser.
- Up to 20 pictures of up to 60 MB each can be added at a time.
- The tool does not check a form's other rules, such as the width, height, or file name it wants. It can limit the width and height, but it cannot crop to an exact shape.
Frequently asked questions
How do I compress an image to 100 KB?
Add the picture here and the size is already set to 100 KB. The page tries different quality settings, and if needed a smaller number of pixels, until it finds the best-looking version under 100 KB. Check the result next to the original, and download it.
Will compressing to 100 KB ruin the picture?
It depends on how large the picture is and how much detail it has. A phone photo can usually go to 100 KB with a visible but acceptable softening, while a very detailed picture may need a smaller size in pixels. The page shows the quality it used and the original next to the result, so you can judge before you download.
Why is my result a little under the size I set?
The quality moves in whole steps, and the file size jumps with each step, so the highest quality that fits is usually a little under the limit. In the default mode the limit is also counted as 1,000 bytes per KB, so the file is under the limit whichever way the form counts a kilobyte.
Can I make a file at least 20 KB?
Yes. Open the settings and enter a minimum. The tool raises the quality to reach it, and if a small picture is still under the minimum it can add invisible padding to a JPEG file. The picture itself is not changed by the padding.
Does this remove the location from my photo?
Yes. The new file is made from the picture's pixels, so the GPS position, the device model, and the time stored in the original are not copied. If you only want to remove that data without changing the picture, use the EXIF remover.
Is my picture uploaded anywhere?
No. The picture is decoded and saved by your browser, and the code behind the page makes no network requests, so a photo of your face or a document stays on your device. You can check this in the Network panel of your browser's developer tools.
Why does the form still reject a file of exactly 100 KB?
Some forms count a kilobyte as 1,024 bytes and some as 1,000, and a few reject a file that is equal to the limit. Keep the default safe mode, which stays under 100,000 bytes, or enter a slightly smaller size such as 95 KB.
Research and references
This page was written and checked against the sources below.

