How JPEG makes photos small
JPEG compression leans on a fact about human vision: we notice broad shapes and brightness far more than fine colour detail. The encoder breaks the image into blocks, converts them with a discrete cosine transform, and discards the high-frequency information the eye is least sensitive to. A quality setting controls how aggressively it does this.
That's what makes JPEG lossy. Each save throws a little detail away, and saving the same JPEG over and over slowly degrades it — visible as blocky "artefacts" around sharp edges. For photographs the loss is usually invisible; for text, screenshots and line art it isn't, which is where PNG wins.
Where JPEG falls short
JPEG has no transparency, so it can't replace a logo PNG. It softens hard edges, so it's wrong for diagrams and UI. And because it's lossy, it's a poor working format — every edit-and-save cycle compounds the loss. The fix is to edit in a lossless format and export to JPEG only at the end.
Strengths
- Opens on virtually every device and program ever made.
- Excellent compression for photographs — small files, little visible loss.
- Adjustable quality to balance size against detail.
Limitations
- Lossy: detail is lost and degrades with each re-save.
- No transparency.
- Softens text, sharp edges and flat colour.
When to use JPEG
Use JPEG for photographs and final exports you need to share or upload anywhere. Avoid it for logos, screenshots of text, and anything you'll keep editing.
JPEG FAQ
- What's the difference between JPG and JPEG?
- Nothing — they're the same format. The .jpg extension is a leftover from the old MS-DOS and FAT filename limit of three letters; .jpeg is the same file.
- Does converting to JPEG reduce quality?
- Yes, slightly, because JPEG re-compresses the image. At high quality settings the loss is hard to see, but repeated conversions accumulate visible artefacts.
- Can a JPEG have a transparent background?
- No. JPEG doesn't support transparency — any transparent areas are flattened onto a solid colour. Use PNG or WebP if you need transparency.