Which format should you use for screenshots?

Start with PNG for a screenshot of text or a user interface. It avoids lossy changes to the pixels. Size and display scaling still matter.

Text and compression

Original test graphic with text and fine colored lines.
Source PNG
Download original file
Same graphic exported as a quality-30 JPEG.
JPEG: quality 30, 4:2:0
Download original file
Same graphic exported as a quality-90 JPEG.
JPEG: quality 90, 4:4:4
Download original file

Look for speckles around letters and blurred colored edges in the quality-30 JPEG. Both JPEG quality and color sampling differ here; this is not a quality-only comparison. Open the full-size views to see the differences.

Compare at full size

Source PNG

Original test graphic with text and fine colored lines.

JPEG: quality 30, 4:2:0

Same graphic exported as a quality-30 JPEG.

JPEG: quality 90, 4:4:4

Same graphic exported as a quality-90 JPEG.
Settings and measurements
FileDimensionsBytesExport settings
text-source.png1024 × 51222,860Optimize: True
text-jpeg-q30.jpg1024 × 51219,828Quality: 30, Subsampling: 2, Optimize: True
text-jpeg-q90.jpg1024 × 51257,293Quality: 90, Subsampling: 0, Optimize: True

Python 3.14.4, Pillow 13.0.0, Platform Linux, Webp 1.6.0, Jpeg 6.2, Avif 1.4.2

Before exporting

  1. Capture the original application at a readable size.
  2. Crop empty space and irrelevant parts without cutting off useful context.
  3. Keep the original pixel dimensions unless the destination needs a smaller copy.
  4. Check the final file at the size readers will see it.

When the screenshot contains mostly a photo

Try another format. A screenshot of a photograph does not automatically need the same settings as a screenshot of a spreadsheet.

Do not enlarge a tiny text capture and expect a format change to restore readable letters.

Related guides

Sources