Compress an image without losing quality
Make pictures lighter without losing quality: in “Lossless” mode every pixel stays the same, and the file gets smaller through better packing and removed metadata. Everything happens on your device — the files are not uploaded anywhere.
Loading the tool…
How it works
- Choose pictures or drop them into the frame below — up to 50 files at once.
- Keep “Lossless” or choose “Near-lossless”, and in “Output format” pick “Same as the source” or “Smallest”.
- Press “Compress”, compare before and after with the slider and download the files one by one or all at once as a ZIP.
Formats and limits
| What | How |
|---|---|
| Formats | JPG, PNG, WebP, AVIF → the same format or the smallest of them |
| Lossless | PNG is recompressed, JPG gets rebuilt coding tables, lossless WebP is encoded again, AVIF loses its metadata; the pixels are checked against the source |
| Near-lossless | MozJPEG, WebP or AVIF at the lowest quality that keeps SSIM ≥ 0.99 |
| At once | up to 50 files of 50 MB each |
| Picture | up to 50 MP and 16,384 px per side |
| Metadata | EXIF, GPS and camera details are removed; the photo keeps its orientation |
Your file stays with you
The pictures are not uploaded to lac.pics or anywhere else: your browser processes them, on your device. No sign-up needed. You need an account only to save the result to lacuna and send a link: then the files go to “Uploads” in your account.
Questions
Are the pictures uploaded to a server?
No. The pictures are compressed in this tab, on your device: WebAssembly codecs are downloaded from lac.pics with the first job and then work offline. Files reach lacuna only if you press “Save to lacuna” and sign in.
What does “lossless” mean?
Not a single pixel changes: PNG is packed tighter, JPG gets rebuilt coding tables, extra data leaves the file. After compressing, the page checks the result against the source: it decodes both files, and for AVIF compares the picture data itself. If anything differs, the source stays.
How is “Near-lossless” different from picking a quality?
There is no quality to guess: the page looks for the lowest one at which the picture is indistinguishable from the source by an SSIM ≥ 0.99 check — in brightness, colour and the hardest spots. The file usually comes out several times smaller, with no difference visible even zoomed in.
Why did the file not get smaller?
If a picture is compressed well already, it cannot get smaller without loss — the page then keeps it as it is and says “Already optimal”. A result is never larger than its source.
What happens to EXIF and location?
EXIF, GPS coordinates, the camera model, XMP and comments are removed. What changes how the picture looks stays: its orientation, the HDR layer of iPhone and Android photos, and its colour profile, which a switch can remove too.
“Same as the source” or “Smallest”?
“Same as the source” keeps a JPG a JPG and a PNG a PNG. “Smallest” picks the format itself: a PNG screenshot becomes a lossless WebP, a photo an AVIF or WebP when that is smaller for the same picture. An HDR JPG stays a JPG: that keeps its HDR layer.
More tools
- Image converterJPG, PNG, WebP, AVIF, GIF and ICO, in batches.
- HEIC to JPGiPhone photos to JPG, PNG or WebP, in batches.
- Compress videoMake it smaller and compare before and after.