Does cropping reduce image quality?
By Sucheet BoppanaPublished Updated
It depends on the format the picture is saved in, and for a PNG on whether any of it is partly see-through. In a measured run, the 800 × 500 region cut from an opaque PNG screenshot matched the same region of the original pixel for pixel. A PNG with partly see-through areas came back almost exact: 49,177 of its 360,000 pixels changed, every one of them partly transparent and each by no more than 1 level, because the browser changed them while reading the file. A JPEG crop is a new JPEG: the 900 × 600 region cut from a JPEG was encoded again at quality 80, and against the same region taken losslessly from the original it scored 42.83 dB PSNR and 0.9818 SSIM rather than an exact match. So crop a JPEG once, from the best copy you have.
Methodology
Chromium opened the cropper, added each sample through the real file input, typed the region into the position and size fields, pressed the button and caught the download. Separately, sharp cut the same region straight out of the original and saved it as PNG, so the reference itself lost nothing. Each crop was then compared with its reference: PSNR and SSIM over luma, with both sides laid on black first when the picture has transparency, and a channel-by-channel check, alpha included, of whether the two are the same picture.
One caveat belongs beside the JPEG figures. The reference was cut from the original as libvips decoded it and the crop from the original as the browser decoded it, and two JPEG decoders can disagree by a hair on the same file, so a part of the JPEG difference may be the decoders rather than the new encode. For the PNGs there is no encode to blame: PNG is written without loss, so any pixel that differs there changed while the browser read the file.
The build and the machine: commit 67ee60b, Chromium 151.0.7922.34, Node v22.23.3, on an Apple M1 Pro running darwin 25.5.0 arm64, measured on October 6, 2026. The samples are synthetic, drawn by a script and saved as fixed files, so every run measures the same files: a grainy landscape scene for the JPEG, an application window for the opaque PNG and, for the other PNG, a logo-like mark of overlapping shapes, most of them partly see-through, on a clear background. Neither PNG carries a colour profile, so what a profile does to a crop was not measured.
What a crop does to the file
A crop throws away part of the frame and keeps a region of it, and the pixels it keeps are not resampled: a region cut out of a large picture keeps the full resolution it had there. What changes is how those pixels are stored. The picture is opened, the region is kept, and a new file is written in the format the original arrived in.
Whether that costs anything depends on the format. PNG stores pixels exactly, so writing them again changes nothing, although the browser can shift a partly transparent pixel slightly while it opens one. JPEG stores an approximation tuned to a quality setting, so writing them again — here at quality 80 — produces a new approximation of the old one.
The measurement
| Format | Region kept | File before → after | Same pixels as the original region? | PSNR (dB) | SSIM |
|---|---|---|---|---|---|
| PNG, opaque | 800 × 500 of 1440 × 900 | 24 KB → 25.82 KB | Yes, every channel of every pixel | — (no difference to measure) | 1.0000 |
| PNG, partly transparent areas | 600 × 600 of 800 × 800 | 51.66 KB → 57.43 KB | No — 49,177 partly transparent pixels off by no more than 1 level | 69.18 | 0.99999 |
| JPEG | 900 × 600 of 1600 × 1067 | 384.2 KB → 37.85 KB | No | 42.83 | 0.9818 |
The opaque PNG crop scored an SSIM of 1.0000 and no PSNR at all, because PSNR divides by the difference between the two pictures and there was none.
The partly see-through PNG is the one that surprised. The crop copies rows of pixels rather than redrawing them and PNG is written without loss, yet 49,177 of its 360,000 pixels came back different: each one partly transparent and each by no more than 1 level, the smallest step there is. Its fully clear and fully opaque pixels came back exact. Scored with both sides laid on black, that is 69.18 dB and an SSIM of 0.99999: close, but not a perfect match.
The JPEG crop scored 42.83 dB and 0.9818: 402,332 of its 540,000 pixels differ from the original region, by as much as 35 levels in one channel. That is measurably not the original. Two things can account for it, the new lossy encode and the two JPEG decoders disagreeing over the original, and this run did not separate them.
Why the file sizes moved the way they did
The JPEG crop kept 32% of the pixels and 10% of the bytes. The cropper writes at quality 80 whatever the original used, so a file saved at a higher quality comes back smaller per pixel as well as smaller overall.
The two PNG crops went the other way: each came back larger than the file it was cut from, though it holds fewer pixels. PNG keeps every pixel exactly whichever program writes it, but how tightly it packs them is up to that program, and the one this site runs in the browser packed these two less tightly than the one that made the samples. A larger PNG is not a worse picture.
How to crop without losing quality
- Crop a JPEG once, from the original or the largest copy you have, rather than cropping a crop.
- If a picture will be cropped and edited several times, convert it to PNG first. A JPEG has no see-through pixels, so the PNG it becomes is opaque, the kind that came back exact here.
- When the crop is going to an exact pixel size anyway, do both in one pass, so the picture is encoded once instead of twice.
- Keep the original. A crop is a new file you download; the original is not changed, and it is the only copy that still has everything.
What about WebP?
This run did not measure a WebP, so there is no number for it here. What can be said without one: this site only ever asks its WebP encoder for lossy WebP, so a WebP crop is encoded again the way a JPEG crop is, at the same quality setting of 80.
Where to go next
- Crop Image — Cut a region out of a JPEG, PNG or WebP on your own device, keeping the format it arrived in.
- JPG to PNG — Turn a JPEG into an opaque PNG before a series of crops and edits, the kind of PNG that came back exact.
- Crop and resize in one step — Crop and scale to an exact pixel box in one pass, so the picture is encoded once instead of twice.
Frequently asked questions
Does cropping a photo reduce its resolution?
It reduces the pixel count by exactly the part you cut away, and the pixels you keep are not resampled. What can change is how they are stored: a JPEG crop is encoded again, and the measurement above shows how far the crop ended up from the original.
Is cropping a PNG lossless?
Not always, it turned out. In the measured run an opaque PNG came back exact, every channel of every pixel. A PNG with partly see-through areas came back with 49,177 of its 360,000 pixels changed by no more than 1 level, every one of them partly transparent, because the browser changed them while reading the file. A PNG with a colour profile was not measured.
Will cropping the same JPEG twice lose more?
Each crop of a JPEG is a fresh encode that starts from the previous approximation, so the losses add up — which is the reason to crop once from the original. This run measured one crop; it did not measure a second.
Does the cropped file keep the original’s metadata?
No. The new file is written from the kept pixels alone, so the EXIF block, any GPS position, the colour profile and the DPI record of the original are not carried over.