Compress an image to 1 MB

1 MB is the most generous of the three target sizes — and the one at which even a large photo usually keeps its resolution. The tool looks for the smallest file that holds your quality target and touches the resolution only if the quality setting alone is not enough. It works in your browser, measures against your source, and the measured value is shown with the result.

Optimize
Preset

All presets target SSIM ≥ 0.98

Quality target

Drag an image here

or paste from the clipboard (Ctrl+V / ⌘V)

JPEG, PNG or WebP · the image stays on your device

Our own test series: 20 images against 1.0 MB

Of the 20 images in our test corpus, 6 are above 1.0 MB. On the quality target SSIM ≥ 0.98 alone — with no target size set — one of them drops below the limit; the median of those 6 sources shrinks by 25.3 %.

Across all 20 runs, 15 results are below 1.0 MB. No run missed the quality target, and none produced more bytes than its source.

Key figures of our own test series over the test corpus
Sources above 1.0 MB 6 of 20
of those, below it on the quality search alone 1
Median saving for those sources 25.3 %
Results below 1.0 MB 15 of 20

These runs set no target size — they measure how far the quality target gets on its own. The preset on this page does set one: it pushes the quality setting further down and reduces the resolution if it has to. The numbers above are therefore the floor of what comes out at 1.0 MB, not the result.

Based on the fixed corpus runs of this project: 20 images, quality target SSIM ≥ 0.98, measured under Node with the codec versions from the manifest. Not counted: wide-gamut-p3.jpg — Decision 44: Display P3 profile, decoded without color conversion under Node. Its SSIM under Node is not the one the product delivers; the image tests ICC detection and counts in no statement about quality or size.

The values on this page, with their origin

Values of the preset on this page, with origin, source and check date
Preset Target 1 MB (size.1mb)
Target resolution at most 1.0 MB
How the dimensions are read not applicable without a target resolution
Allowed formats WebP, JPEG, PNG — chosen by measurement
Quality target SSIM ≥ 0.98
Metadata removed (EXIF, GPS)
Origin of the values Project value, no outside source
Source none — the value comes from this project’s specification
Last checked – No check date needed

The target size of 1 MB is the preset itself; the value is set this way in the project specification 7.2 and counts in base 1024 (1,048,576 bytes). There can be no outside source for it. The resolution stays untouched — it is reduced only when the target size cannot be reached through the quality setting alone (6.6). Without a target resolution `fit` has no effect; it is set to “max” because a requirement without dimensions would not be one.

Platforms change their requirements without notice. That is why every check expires after 90 days and then shows as “Check due” — here and on the presets overview.

The quality target itself is not set but tested: on September 13, 2026 it was held against the eye on the test corpus. It passes narrowly — what exactly that means, and where the method reaches its limits, is on How we measure quality.

Why these values?

Here 1 MB means 1,048,576 bytes, again in units of 1,024. The value is a project value: it marks the point at which a photo at full resolution usually still fits without the search running into the quality floor.

For many images this target size is not the part of the preset that does anything. If the smallest file that holds your quality target is below 1 MB anyway, that file is what you get — the target is met without changing anything. That is the normal case, not an omission: the target size is a ceiling.

A result can also be: no change at all. If no re-encode comes out at least two percent smaller than your source, you get your file back unchanged, with the status “Your image is already optimal”. Re-encoding a file so that it becomes larger or worse would be the opposite of what this tool is for. How often this happens depends on your quality target: the stricter it is, the sooner a re-encode stops paying off. The measured series on this page counts the cases for our test corpus.

Frequently asked questions

Why does the tool sometimes change nothing?

Because your source won. It competes as a candidate of its own against every re-encoded version and is measured the same way. If no re-encode is at least two percent smaller, the source goes back.

You can tell by the status “Your image is already optimal”, by a saving of 0 %, and by the download keeping its original file name. If metadata was removed along the way, the tool says so — then the pixels are unchanged, but the file is no longer the same.

Is the resolution kept at 1 MB?

As a rule, yes. This preset sets no target resolution, and the resolution is only touched if the file size cannot be reached through the quality setting alone.

If you also need a specific width, choose a preset in the tool that brings a target resolution — the presets page shows which ones do and where their dimensions come from.

Is my image enlarged if it is smaller than the target?

No, it is only ever scaled down. Scaling a smaller image up to the target resolution would invent pixels your source does not have: the file would grow and not a single detail would be added.

If the aspect ratio does not match the target, the image is fitted rather than cropped. The result then does not fill the frame, and the tool writes that under the result.

What does the quality value under the result mean?

It is called SSIM. It compares the result with your source — not byte by byte, but by structure: brightness, contrast and local pattern in small windows across the whole image. 1.000 means the images are identical — that is the value you see when the tool hands your own image back. Below that the distance grows.

The value is measured on every run and shown, including when it comes out badly. How the measurement works, and where it reaches its limits, is on the page about our method.

Is my image uploaded anywhere?

No. Everything runs in your browser: decoding, measuring and encoding happen on your device, in a background thread. There is no server that receives your image, and therefore none where it could stay behind.

This is not a setting you can flip. It is how the tool is built — there is no counterpart it could send anything to.