ScreenshotNeo

BlogHow-to

How to Screenshot a QR Code

Learn how to capture a QR code on iPhone, Android, desktop and web pages, then scan a saved screenshot safely.

By the ScreenshotNeo team1 October 20266 min read

Quick answer: taking a screenshot and scanning a QR code are separate actions. If the code is on your phone, use the phone’s normal screenshot controls first. If you need to open the destination afterward, open the saved image in Photos or another image viewer and use an image-recognition feature such as Google Lens. If the code is printed or displayed on another screen, use the live camera scanner instead.

Choose the right method

Where the QR code is What to do
On your own iPhone screen Take a normal screenshot, then open it in Photos and use an available recognition feature.
On your own Android screen Take a normal screenshot, then select the image in Google Photos and choose Lens.
On paper or another device Open Camera and scan the live code.
Inside a web page you manage Capture the page or QR element with a browser tool or ScreenshotNeo, then decode the resulting image separately.

A screenshot preserves the QR pattern as an image; it does not automatically open the encoded URL.

Screenshot a QR code on iPhone

  1. Display the QR code at a useful size.
  2. Take a screenshot using your iPhone model’s usual button combination.
  3. Tap the screenshot thumbnail, or open it later in Photos, and crop only if cropping keeps the complete square and its quiet margin.
  4. To open the destination from the saved image, try Photos’ built-in recognition features. Menu names vary by iOS version, so if no QR action appears, use a current iOS update or a trusted image-recognition app.

For a QR code presented to the camera, Apple documents opening Camera in Photo mode, framing the entire code and tapping the link. You can also use Control Center’s Scan Code control; add it in Settings if it is missing. See Apple’s QR-code scanning guidance.

Screenshot a QR code on Android

  1. Use your device’s normal screenshot gesture or button combination.
  2. Open Google Photos and select the saved screenshot.
  3. Tap Lens and follow the detected link or text result. Google documents Lens actions on a selected photo in Google Photos Help.

On supported devices, Android’s on-screen recognition features can also act on a code that is currently visible. Availability and controls differ by manufacturer and Android version, so use the device’s built-in help when the option is not shown.

Scan a QR code that is not on your phone

When the code is printed or displayed on a second screen, do not take a screenshot first. Open the camera scanner, keep the complete square visible, hold the phone steady and use good lighting. Google’s Pixel guidance recommends moving closer while keeping the full code in view and avoiding blur. Pixel phones also provide a Camera route and a Quick Settings Scan QR code control; see Pixel Help.

Capture a QR code from a web page

For a one-off capture, use your browser or operating system screenshot tool. Zoom until the QR modules are sharp, include the full code and its white margin, and save as PNG to avoid compression artifacts.

Browser workflow

  1. Open the page containing the code.
  2. Wait until the code is fully rendered.
  3. Use the browser’s full-page or area screenshot command.
  4. Check the saved image at 100% zoom before decoding it.

Automated workflow

For scheduled captures, use a browser automation library or a screenshot API. Capture the QR element when possible instead of the entire page; this reduces image size and avoids overlays. Wait for the QR selector or for network activity to settle, and hide cookie banners or chat widgets before capture.

Or skip the browser setup

ScreenshotNeo captures a URL as PNG, JPEG, WebP or PDF with one request. It can capture a full page or one CSS-selected element, wait for a selector, delay or network idle, run custom CSS or JavaScript, use a chosen viewport or device preset, and hide selectors before the shot. Decode the returned image with your QR library after capture.

Cookie banners, newsletter popups and chat widgets are removed before the shot. Bot checks, blank pages and failed loads are never billed, and response headers identify the page verdict and whether it was billed. An MCP server lets AI agents take screenshots, inspect pages and capture PDFs. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.

See the ScreenshotNeo API documentation for all options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Replace the example URL with the page that contains your QR code. Store the API key on a server or in a secret manager, not in browser JavaScript. After saving the response, pass the image to your QR decoder.

Create a free ScreenshotNeo account with 1,000 screenshots per month and no card.

Image quality requirements for a scannable screenshot

  • Keep the entire QR square and its quiet zone.
  • Prefer PNG or WebP at sufficient resolution; avoid repeatedly recompressing JPEG files.
  • Do not blur, sharpen aggressively or apply filters that merge modules.
  • Capture at the displayed scale or a higher retina scale.
  • Use a dark code on a light, uniform background when you control the design.
  • For automated pages, wait until the code’s canvas or image has finished rendering.

Troubleshooting

Problem Likely cause Fix
No QR action appears on a saved image The OS or Photos version does not expose recognition for that image. On Android, open the image in Google Photos and choose Lens. On iPhone, update iOS or use another trusted recognition tool.
Camera cannot scan The code is cropped, blurred, too small or poorly lit. Keep the full square visible, hold steady, improve lighting and move closer without cutting off the edges.
Decoder reports an invalid code Screenshot compression, overlays or cropping damaged modules. Retake the screenshot as PNG, remove overlays, preserve the quiet margin and avoid filters.
Only part of a web QR code is captured The page changed size or the element was outside the viewport. Wait for the QR selector, capture the element directly, or use a full-page capture.
Automated capture returns a blank page The page timed out, blocked automation or had not finished rendering. Increase the wait condition, provide required headers or cookies, and inspect the response verdict. ScreenshotNeo does not bill blank pages and failed loads.
ScreenshotNeo request is rejected Missing or invalid access key, malformed URL or an unavailable target. Check the key, URL encoding and HTTP response; keep the key server-side and consult the API docs.

Performance, reliability and cost

  • Speed: Element captures are usually smaller than full-page images. Use a selector and a specific wait condition when the QR is in a known element.
  • Reliability: Wait for the QR image or canvas rather than an arbitrary short delay. For changing pages, use a stable selector and a fixed viewport.
  • Repeat captures: Caching with a chosen TTL can avoid fetching an unchanged page. Signed links are available when a public image tag must load a protected result.
  • Batch work: ScreenshotNeo bulk capture accepts up to 100 URLs per call, useful for catalogs or monitoring jobs.
  • Billing: ScreenshotNeo bills only clean shots. Bot checks, blank pages, timeouts, failed loads and cache hits cost nothing; response headers include X-Page-Verdict and X-Billed.

FAQ

Can I scan a QR code from a screenshot?

Yes. Open the saved image and use an image-recognition feature such as Google Lens. The screenshot itself only stores pixels.

Can I scan a QR code shown on the same phone?

Use a saved-image workflow. The camera scanner is intended for a code presented to the camera, such as paper or another screen.

Should I crop the screenshot?

Crop only when the complete code and its white quiet margin remain visible. Removing that margin can make decoding fail.

What file format is best?

PNG is a safe default. WebP also works when it preserves sharp module edges and adequate resolution.

Can ScreenshotNeo read the QR destination for me?

ScreenshotNeo captures the page image. Use a QR decoder after receiving the PNG, JPEG or WebP response.