Compress an image to 1 MB
I built this page for forms that refuse an image over 1 MB. Choose a picture and I find the best quality that still fits under 1 MB.
Your picture stays on your device. PNG, JPG, WebP and AVIF work.
Leave it empty to keep the original size. A smaller width is applied before compressing.
The result is a JPG, so transparent areas are filled with white.
- Final size
- Dimensions
- Quality used
How it works, and what stays on your device
I built this page on the encoder your browser already has. It saves the picture as a JPG at different qualities and keeps the highest one that stays under 1 MB, within 3% of it when the picture allows. All of it happens on your device and the file is never uploaded.
The result is always a JPG, because JPG lets me set the quality. PNG, JPG, WebP and AVIF pictures can go in. JPG cannot hold transparency, so transparent areas are filled with white.
I count 1 KB as 1,024 bytes and 1 MB as 1,048,576 bytes, so 1 MB is the limit your result stays under.
Frequently asked questions
Is my picture uploaded?
No. The picture is opened and compressed in your browser and never leaves your device. I do not receive it, and the page makes no request that carries it.
How close to 1 MB will the file be?
It never goes over 1 MB. I look for the highest quality that fits, and when the picture allows it the file ends up within 3% below 1 MB. Quality moves in whole steps, and when the next step would already pass the limit I reduce the width a little instead, so the size lands in that window. The result shows the final size and dimensions.
What if the picture cannot get that small?
Quality alone has a floor. When even the lowest quality is over the limit, the page says so and offers to shrink the dimensions too. You can also set a maximum width yourself before compressing.
Does the format change?
Yes. The result is a JPG whatever you put in, and transparent areas become white. A picture that is already under the limit is kept exactly as it is.
Is 1 KB 1,000 or 1,024 bytes?
I count 1,024 bytes, the binary kilobyte. A form that counts 1,000 bytes to the KB may see the file as slightly over, so shrink the width a little more in that case.