PNG and JPG have been the two default image formats for decades, and people pick between them mostly by habit. They are actually good at opposite things, and using the wrong one is either ugly or wasteful.
The one-line rule
Photographs: JPG. Everything else: PNG. If you remember nothing else from this page, that rule will serve you well.
Why the rule works
JPG uses lossy compression tuned for natural images. Photographs are full of smooth gradients and fine texture, exactly the kind of detail the eye does not track precisely, so JPG can throw a lot away and still look identical. The result is a small file.
PNG is lossless and stores every pixel exactly. On a photograph that is enormously wasteful: a PNG photo can be five to ten times larger than the equivalent JPG with no visible benefit. But on a screenshot, a logo or a chart, PNG is perfect, because those images have hard edges and flat colour, which compress extremely well losslessly.
Never save a screenshot as JPG
This is the most visible failure mode. JPG compression creates faint smudges around high-contrast edges, and text is nothing but high-contrast edges. A JPG screenshot looks blurry and slightly dirty around every letter, and the file is often larger than the PNG would have been. Screenshots and any image containing text should be PNG.
Transparency
JPG has no transparency at all. If your image needs a transparent background, such as a logo placed over a coloured section, JPG is not an option and saving it as one will give you an unwanted white box. PNG supports full alpha transparency.
When both are the wrong answer
- For the web: WebP or AVIF beat both on size, with transparency support. Convert with PNG to WebP or JPG to WebP.
- For logos and icons: SVG stays sharp at any size, since it is vector rather than pixels.
- For print or archival: TIFF or the camera's raw file, not either of these.
Converting between them
Going from PNG to JPG discards transparency and applies lossy compression: fine for photos, destructive for graphics. Going from JPG to PNG does not restore anything that JPG already discarded, it just stops further loss, which is useful before editing. Both run locally in the browser here.