Back to blog
GuidesFormatsPerformance

PNG, JPEG, WebP or PDF: picking the right capture format

Each format wins somewhere. A practical guide to file size, fidelity and compatibility, and how the quality setting changes the trade-off.

Thien Nguyen
Thien Nguyen
Creator & Maker
· Jul 29, 2026· 2 min read

The format parameter accepts png, jpeg, webp and pdf. The default is fine for most things, but picking deliberately can halve your file sizes or save you a conversion step.

PNG - lossless and sharp

PNG never throws away detail, which makes it the safe choice for text-heavy UI, dashboards and anything you will zoom into. The cost is size: a full-page PNG of a long marketing site can be several megabytes.

Use it for: documentation, bug reports, visual regression baselines.

JPEG - small and universal

JPEG compresses photos and gradients very well and opens everywhere, including old email clients. It struggles with sharp edges, so small text can look fuzzy at low quality.

Use it for: email thumbnails, photo-heavy pages, anywhere compatibility beats fidelity.

WebP - usually the best default

WebP is typically noticeably smaller than JPEG at similar visual quality, and handles text better. Every modern browser supports it.

Use it for: link previews, galleries, anything shown on the web.

PDF - documents, not pictures

PDF output uses the browser's print engine, so the result has selectable text and respects print stylesheets. It is the right choice for invoices, reports and archival.

Use it for: receipts, reports, legal records.

The quality knob

quality applies to JPEG and WebP and is ignored for PNG and PDF.

{ "url": "https://example.com", "format": "webp", "quality": 80 }

Around 75 to 85 is the sweet spot for most pages. Go higher for text-dense captures; lower for thumbnails that will be shown small.

Quick reference

  • Pixel-perfect UI - PNG
  • Smallest web image - WebP
  • Works in every email client - JPEG
  • Selectable text, printable - PDF
Try Snapopa

Reading about screenshots? Try the API.

100 free tokens on signup. No credit card. One request is all it takes.

$ curl https://api.snapopa.com/capture \
    -H "Authorization: Bearer sk_•••" \
    -d '{"url":"https://stripe.com"}'

✓ 200 OK
{ "data": { "fileUrl": "https://cdn.snapopa.com/…" } }