You convert a 1.2 MB photograph to PNG and get a 5 MB file back. Nothing looks different. Nothing was added. It is reasonable to assume something went wrong.
Nothing did. The two formats are behaving exactly as designed, and the size difference is the whole difference between them.
The two compression strategies
JPEG throws information away. Its compression is built on a model of human vision: we notice changes in brightness far more than changes in colour, and we notice large structures far more than fine detail. So JPEG breaks the image into 8×8 pixel blocks, transforms each block into frequency components, and then aggressively discards the high-frequency components, the fine variation you were least likely to see. What comes back when you open the file is a reconstruction of the original. It is close enough that you usually cannot tell, and it is small because most of the data is gone.
PNG throws nothing away. Its compression is the same family of technique used by ZIP: find repetition, describe it compactly, reconstruct it exactly. Every pixel that goes in comes back out bit-for-bit identical. There is no vision model and no discarding, so the only savings available are the ones genuine repetition provides.
Now consider what a photograph looks like to those two strategies. Take a patch of sky. To your eye it is a smooth flat blue. To a lossless compressor it is thousands of slightly different blues, plus sensor noise, and almost no exact repetition anywhere. There is very little for it to compress. JPEG looks at the same patch, decides the differences are below your perceptual threshold, and flattens them, which is why it wins by so much on photographs.
So a photograph in PNG is typically three to five times its JPG size. That ratio is the cost of the guarantee and reflects no defect.
Why it goes the other way for screenshots
Run the same experiment with a screenshot of a code editor or a spreadsheet and the result flips completely. PNG will often be smaller than JPG, and it will look far better.
Screenshots are full of long runs of identical pixels: solid background, solid panels, text drawn from a small set of exact colours. Lossless compression finds that repetition immediately and encodes it in almost nothing. Meanwhile JPEG’s block-based approach handles hard edges badly. The abrupt jump from black text to white background is exactly the high-frequency detail JPEG discards, so it produces the grey “mosquito noise” halos and smeared characters you have seen around text in badly saved screenshots.
The general shape of it:
| Image type | Smaller as | Rough ratio |
|---|---|---|
| Photograph, lots of texture | JPG | PNG is 3-5× larger |
| Photograph, smooth backdrop | JPG | PNG is 4-8× larger |
| Screenshot with text | PNG | PNG often smaller, and much cleaner |
| Logo or flat-colour graphic | PNG | PNG dramatically smaller |
| Line art, diagrams, charts | PNG | PNG smaller and sharper |
The conversion that cannot help you
A specific version of this question comes up constantly, so it is worth stating plainly:
Converting a JPG to PNG does not restore quality. It cannot.
The detail JPEG discarded was destroyed when the JPG was created, before your conversion ever started. PNG then preserves the damaged version perfectly. You end up with a larger file containing exactly the same visible information, JPEG’s compression artefacts included, now stored losslessly and permanently.
Any tool advertising that it “enhances” or “restores” an image during a format conversion is applying smoothing, sharpening or an upscaling model. Those are sometimes useful, but they are guesses about what might have been there, and they are a different operation from converting a format.
When the bigger file is the right answer
JPG-to-PNG is a sound choice in several cases, and each is a good reason to accept the size.
You are about to edit. Every save of a JPG runs a fresh round of lossy compression over already-lossy data. Crop, adjust, save, reopen, adjust again and the degradation compounds visibly. Converting to PNG first freezes the damage where it is, so no further loss accrues however many times you save.
Something requires it. Plenty of upload forms, patent and legal submission systems, print workflows and design tools accept PNG and reject JPEG on policy. Compatibility beats efficiency when it is a hard requirement.
You need transparency. JPEG has no alpha channel at all. If the image has to sit on a coloured background without a white box around it, PNG is the only choice of the two.
You want the metadata gone. Re-encoding strips EXIF: camera model, timestamps, GPS coordinates. That happens on any conversion, but converting to PNG is a common way to get a clean, editable, metadata-free copy in one step. There is more on what exactly gets stripped.
What to do instead, depending on the goal
If you want a smaller file, PNG is the wrong target for a photograph. Convert to WebP instead. It typically lands 25-35% below the JPG while looking the same, and it supports transparency, which is usually the other reason people reach for PNG.
If you want a lossless working copy, PNG is correct, and the size is the price. Accept it, do your editing, and export to a delivery format at the end.
If you have a graphic and not a photo, PNG is almost certainly both smaller and better-looking than the JPG. Convert without hesitation.
If you are converting because a form demanded it, convert, upload, and keep your original. The form’s requirement does not have to become your archive format.
The rule underneath all of this
File size is a record of how much information the encoder kept and how much structure it found to exploit, and it says nothing about quality. A large PNG of a photograph means “everything was kept, and photographs have little repetition to find”. A small JPG of the same photo means “a lot was discarded, cleverly”. A small PNG of a screenshot means “nothing was discarded, and there was a great deal of repetition”.
Read file size that way and the surprises stop.
Every conversion mentioned here runs in your own browser on this site. The JPG → PNG route reports the real before-and-after weight of your specific file, which is the only number that settles the question.