Why Is My Compressed Image Larger Than the Original?

By Michael Lip · Updated 2026-10-28

Re-encoding can add bytes. krzen.com always writes a new file, so an already compressed JPEG saved again at quality 100 grows. A flat PNG screenshot converted to JPEG also grows, because JPEG is built for photographs. Lower the quality, keep PNG for screenshots, or keep the original.

Two measured cases

A test image was built with Pillow 11.3.0 and encoded twice. These are the real file sizes in bytes:

screenshot.png          4233
screenshot-q80.jpg     27200
screenshot-q100.jpg    33237

photo.jpg             850445   (quality 85)
photo-req100.jpg     2389030   (quality 100)

The screenshot is a flat white page with a few solid blocks. PNG stores it in 4,233 bytes. The same pixels as JPEG need 27,200 bytes at quality 80, which is 6.4 times the PNG size. JPEG spends bytes on a photograph model, and a flat image gains nothing from that model.

The photo was already a JPEG at quality 85. Encoding it again at quality 100 produced 2,389,030 bytes, which is 2.8 times the original. A higher quality setting asks for more precision than the source holds. The extra bytes describe detail that the first encode already removed.

Why krzen.com writes a new file

The compressor decodes the image into a canvas and encodes the canvas again. Every output is a new encode. A new encode at a quality above the source quality can be larger than the input.

What to do

The image optimization calculator estimates the saving before you compress anything.

Michael Lip

Made by Michael, one person and a lot of coffee.

If krzen has helped you, you can buy me a coffee. It honestly makes my day, and I read every note that comes with one.

Buy me a coffee · $5via PayPalCard, any amount or monthlySponsor on GitHubmonthly or one-timeWhy I ask
By the same builder: GitHub — theluckystrike BeLikeNative — Grammar AI EarlyThunder — Dev Blog Bug Bounty Reality Zovo — AI Dev Tools