Why Screenshot Text Gets Blurry: PNG vs JPEG Tested
Start with the screenshot you actually need to share
For a screenshot dominated by small text, a table or flat interface colors, start with PNG when the destination accepts it. PNG preserves the pixel values it receives. Ordinary JPEG discards information during compression, which can leave fringes or uneven edges around small lettering.
Check the upload rules first. A form may require JPEG, limit bytes, or restrict dimensions. The smallest file is useful only if the important text remains legible. PNG is not always larger, and a JPEG quality number is not a guarantee of a particular file size.
Our test: two source images, eight saved files
We generated an opaque text-and-flat-color card and a separate scene with gradients and seeded texture. Both are original 1,200 × 720 RGB images. Neither is an app screenshot or a camera photograph. The upload limit and error text on the test card are fictional test content.
Each source was saved directly as PNG, JPEG quality 90 with 4:2:0 subsampling, JPEG quality 90 with 4:4:4, and JPEG quality 75 with 4:2:0. We did not resize the image or make one JPEG from another. The comparison below includes the complete saved files.
The test card’s PNG was 39,953 bytes, versus 56,425 bytes for JPEG 90 / 4:2:0. Its PNG was also slightly smaller than the quality-75 JPEG. The textured source went the other way: PNG was 1,158,190 bytes, while JPEG 90 / 4:2:0 was 187,247 bytes. Those are results from these two samples, not average savings for screenshots or photographs.
| Source | Encoding | Bytes | Exact original RGB pixels? |
|---|---|---|---|
| Text card | PNG | 39,953 | Yes |
| Text card | JPEG 90 / 4:2:0 | 56,425 | No |
| Text card | JPEG 90 / 4:4:4 | 72,335 | No |
| Text card | JPEG 75 / 4:2:0 | 40,527 | No |
| Textured scene | PNG | 1,158,190 | Yes |
| Textured scene | JPEG 90 / 4:2:0 | 187,247 | No |
| Textured scene | JPEG 90 / 4:4:4 | 365,283 | No |
| Textured scene | JPEG 75 / 4:2:0 | 82,096 | No |

Look at the same text, not just the file-size number
The next figure shows the same red text region from three actual saved files. Every crop uses the same coordinates and is enlarged exactly three times with nearest-neighbor sampling. That makes the source pixels easier to inspect without adding a smoothing filter.
In this sample, the 4:2:0 JPEG shows colored fringes around the lettering that the PNG does not add. The 4:4:4 JPEG changes the result but remains lossy and uses more bytes. In our complete text-card files it was 72,335 bytes. This is not a reason to assume every editor exposes these controls, or that 4:4:4 guarantees readable text.
Our decoded PNG arrays matched the generated originals exactly. The tested JPEG arrays did not. A pixel match is a useful integrity check, but a pixel-error value is not a human readability score. Read the actual small text at the size your recipient will see.

A practical workflow before uploading
Use your image editor’s supported save or export operation and keep the original. The exact menus vary by application; this guide does not claim a particular editor was tested.
- Read the destination’s format, pixel and byte requirements. Record the limit rather than assuming that all websites use the same KB definition.
- Keep the original screenshot. If text and flat graphics dominate and PNG is accepted, make a PNG copy first.
- If the destination requires JPEG, export a separate JPEG directly from the best source. If quality controls are available, compare actual outputs rather than repeatedly overwriting the same JPEG.
- Reopen the saved file at 100% and inspect small numbers, colored text and fine lines. Measure its exact bytes and dimensions. Crop irrelevant areas or adjust settings only as needed.
- If the destination changes images, inspect the delivered result too. If no acceptable copy fits, use another supported sharing method instead of making the text unreadable.

Why saving a damaged JPEG as PNG does not fix it
Lossless storage preserves the pixels supplied to it; it does not reconstruct detail already removed. A PNG made from a previously compressed JPEG can faithfully preserve that JPEG’s artifacts. Return to the original screenshot when possible.
Likewise, PNG cannot undo a screenshot that was already resized too small before it was saved. Check the capture dimensions and the displayed size as well as the format. For a transparent source, remember that ordinary JPEG cannot retain an alpha channel; choose an accepted format that supports transparency or deliberately prepare the required background.
Reproduce the comparison and understand its limits
The experiment used Python 3.12.14, Pillow 12.3.0 and NumPy, with the texture seed fixed at 20261030. PNG used RGB, optimize=True and compress_level=9. JPEG used optimize=True and progressive=False, with the quality and subsampling combinations shown above. No EXIF or ICC metadata was added. The source generator and per-file SHA-256 records are retained with the test.
These options describe our encoder, not the settings of Paint, Photoshop or a messaging app. A different scene, font rasterizer, encoder or metadata payload can change the bytes. We did not test upload acceptance, OCR accuracy or any service’s recompression behavior.
If your image is rejected for its size
Format is only one of the checks. Use the separate guide below to distinguish pixel dimensions, bytes and aspect ratio before changing the image again.
Image Dimensions vs File Size: Fix a Rejected Upload
Sources and verification
- MDN: image formats, lossless encoding and screenshots (checked 2026-10-30)
- Pillow: JPEG and PNG save options (checked 2026-10-30)
Comments
Post a Comment