How to Scan a QR Code From an Image on Any Phone or Computer

by KoloQR TeamBasics

A circular QR code drawn with round dot modules and three ring-shaped corner patterns, against a coral background, with a lime green circle overlapping its lower right corner holding a black upload arrow.

Open the screenshot or photo in the phone's photo app and touch and hold the QR code: Photos does this on an iPhone XS or later with iOS 15 or later, and Google Photos does it through the Lens button on Android. On a Windows PC, a Mac or a Linux machine there is no built-in reader for a QR code in a file, so the route is a decoder in the browser - the QR code scanner on this site reads a PNG, JPG or screenshot on your own device without uploading it. Every route, and what to do when an image will not decode, is below.

Key Points

  • A QR code that is already an image - a screenshot, a photo, an attachment - is read from the file, not the camera. On a phone the photo app does it; on a computer a browser-based decoder does.
  • iPhone: open the image in Photos and touch and hold the QR code. Live Text needs an iPhone XS, iPhone XR or later with iOS 15 or later, according to Apple's support page for the feature.
  • Android: open the image in Google Photos and tap Lens. Circle to Search reads a QR code on the screen of any app without a screenshot, on the phones that have it.
  • Windows, macOS and Linux have no built-in reader for a QR code in a saved file. The Windows Camera app scans only through the webcam. Drop the file into the QR code scanner instead; it decodes in the browser and uploads nothing.
  • A QR code needs about 3 pixels per module in the image to decode, measured with jsQR. A 25-module code therefore needs roughly 75 px plus its margin, and a 200 px-wide code in a screenshot is comfortable.
  • The commonest reasons an image fails are a crop that cut into the quiet zone, a screenshot of a thumbnail, JPEG recompression by a chat app, and a photo taken at an angle or through glare.

Which Route Reads a QR Code From an Image on Each Device

Every device has one built-in route for a QR code in an image and one fallback that works everywhere: a decoder that runs in the browser. The table gives the built-in route first, because it is faster, and the fallback second, because the built-in route depends on the phone model, the software version and the app the image is in.

Where the QR code isBuilt-in routeFallback
A screenshot or photo on an iPhonePhotos, then touch and hold the QR code (Live Text, iPhone XS or XR and later, iOS 15 or later)Upload the image to a browser decoder in Safari
An image in Safari, Messages or Mail on an iPhoneTouch and hold the image; the menu shows the linkScreenshot, then Photos
A screenshot or photo on an Android phoneGoogle Photos, then the Lens buttonGoogle app, Lens, then choose the image under Screenshots; or a browser decoder
On the screen of any Android appCircle to Search, on phones that have it; in Chrome, touch and hold the image, then Search with Google LensScreenshot, then Google Photos
A QR code on a web page on a Windows PC, Mac or Linux machineChrome or Edge: right-click the image, then Search with Google Lens (typically)Save or screenshot the image, then a browser decoder
An image file on a Windows PC, Mac or Linux machineNone documented; the Windows Camera app scans only through the webcamDrop the file into a browser decoder
Inside a PDF, a slide, a video or a documentNone; zoom in, then screenshot the codeAny route above, with the screenshot
A WhatsApp, Telegram or email attachmentOpen the image full size, then the phone route aboveSave the image, then a browser decoder; ask for the original if it fails
Every built-in route hands over a tappable link. Only the browser decoder shows the decoded text in full before anything opens.

The decision rule is short. If the image is on a phone, use the photo app first. If the image is on a computer, or the phone's photo app finds nothing, use a browser decoder. If the QR code is inside a document, a video or an app that will not let you touch the image, take a screenshot first and then treat the screenshot as the image.

How to Scan a QR Code From a Photo or Screenshot on an iPhone

Open the photo or screenshot in the Photos app and touch and hold the QR code. A menu with the decoded link appears, and choosing the open option loads the page in Safari. This uses Live Text, and Apple's support page for Live Text sets the requirement as an iPhone XS, iPhone XR or later with iOS 15 or later.

Live Text is the iOS feature that recognises text and QR codes inside photos, screenshots and the camera view, on an iPhone XS or later running iOS 15 or later. Apple's page documents copying text, translating it and opening web addresses found in a photo; a QR code in the same photo is typically recognised by the same feature, and the touch and hold shows the address it points to. If the touch and hold selects text near the code instead, zoom in so the QR code fills more of the screen and try again.

A QR code shown inside Safari, Messages or Mail does not need a screenshot. Touching and holding the image of the code brings up the same menu, so a code on the iPhone's own screen can be read on that iPhone. Where the touch and hold does nothing - a PDF viewer, a video, a third-party app - press the side button and volume up together, open the screenshot in Photos and touch and hold the code there.

An iPhone older than the iPhone XS has no Live Text, and Apple's page for scanning a QR code describes only the Camera app and Code Scanner, both of which need something in front of the lens. On those phones, open the QR code scanner in Safari and choose the image from the photo library; the decode runs on the iPhone. For the camera routes and the setting that switches QR detection off, see how to scan a QR code on an iPhone.

How to Scan a QR Code From a Picture on an Android Phone

Open the picture in Google Photos and tap the Lens button at the bottom of the screen. Google Lens outlines the QR code and shows its link as a chip to tap. Google's help page for Google Photos gives the same route as More, then Google Lens, which is where the option sits on versions without the button.

Google Lens is the image recognition tool built into the Google app, Google Photos and many Android camera apps that reads QR codes, text and objects from the camera or from a saved image. Google Lens can also be opened without Google Photos: tap the Lens icon in the search bar of the Google app and choose the picture under Screenshots, which Google's own page for searching with an image describes. Either way the QR code is decoded on the phone; a connection is needed only to open a web address afterwards.

  • Circle to Search. On phones that have it - Google lists select models including the Pixel 6 and later - touch and hold the Home button or the navigation handle, then circle the QR code on screen. The code is read in place, with no screenshot, from any app.
  • Chrome. Touch and hold an image of a QR code on a web page and choose Search with Google Lens. The result shows the link the code holds.
  • A gallery app other than Google Photos. Use Share and choose Google Lens or Search image, or take the file to a browser decoder.

A phone without Google services, or a work profile with Lens disabled, has none of these routes. On those phones, open the QR code scanner in the browser and choose the image; the file is decoded on the phone and the full text is shown rather than a link. The Scan QR code tile, the camera setting on each brand and the Wi-Fi scanner are covered in how to scan a QR code with an Android phone.

How to Scan a QR Code From an Image on Windows, macOS or Linux

Neither Windows nor macOS ships a documented reader for a QR code in a saved file, so on a computer the route is a decoder in the browser: open the QR code scanner, drop the PNG or JPG onto it, or paste a screenshot, and the decoded text appears. Nothing is uploaded; the file is read on the machine.

The Windows Camera app does scan QR codes, but only through the webcam. Microsoft's page on the Windows Camera app, for Windows 10 and 11, describes selecting the Barcode button and placing the code in front of the camera, and says nothing about opening a saved image. Pointing a webcam at a printout works; pointing it at the same screen the app is on does not, for the reason in the next section. How to scan a QR code on a computer covers the webcam route alongside the Mac, Chromebook and Linux options.

On a Mac, Preview and Photos have Live Text, and Apple's page for Live Text in Preview describes selecting text, phone numbers and web addresses in a photo. That page does not mention QR codes, so this guide does not claim the Mac reads them from a file; try a right-click on the code in Preview, and use the browser decoder when nothing is offered. Linux has no built-in route at all, and the browser decoder is the same on all three systems.

For a QR code that is on a web page rather than in a file, Chrome and Edge have a shortcut. Right-click the image and choose Search with Google Lens - Google's help page for Chrome on a computer gives that label, and older builds called it Search image with Google Lens. Lens typically shows the link the code holds in the side panel. Google's page does not mention QR codes, so when the panel shows only similar images, save the picture and decode it instead.

How to Read a QR Code That Is on the Same Screen

Take a screenshot and read the screenshot. A camera cannot photograph the screen it is attached to, so a QR code in a chat, an email, a ticket or a PDF on the phone you are holding has to be captured as an image and then decoded by one of the routes above. The same applies to a laptop showing a code and no second device.

The situations that come up most often, and the capture that works for each:

  • A code in WhatsApp, Telegram or Messages. Open the image full size, then touch and hold it (iPhone) or use Lens (Android). If the app blocks the gesture, screenshot the open image, not the chat thumbnail.
  • A code in an email. Touch and hold the image in Mail on an iPhone. Elsewhere, screenshot the email with the code as large as the screen allows.
  • A code in a PDF, a slide or a document. Zoom in until the code is at least a quarter of the screen wide, then screenshot. A code captured from a page-fit view is often only 40 or 50 pixels across, which is too small to decode.
  • A code in a video. Pause on a frame where the code is sharp and square on, then screenshot. Motion blur across even one row of modules can be enough to stop a decode.
  • A code on a laptop, read by a phone. Point the phone camera at the screen; this direction needs nothing special. Turn the display brightness up first.

A screenshot is a better source than a photograph of a screen. Photographing a monitor adds moire, refresh banding and reflections; a screenshot has none of them and keeps every module edge exactly as it was drawn.

How to Scan a QR Code Image With the Online Scanner

Drop the image onto the QR code scanner, choose it from disk, or paste a screenshot from the clipboard, and the decoded text appears with its type labelled. The scanner accepts PNG, JPG, WebP and GIF; an SVG has to be exported to one of those first, because a browser cannot rasterise a vector file without being told a size. The image is drawn to a canvas in the tab, decoded there, and never uploaded.

  1. Get the QR Code Into an Image File. Save the image, or take a screenshot with the code as large on screen as it will go. A code inside a PDF, a video or an app is captured the same way: zoom in, then screenshot.
  2. Crop Around the Code, Not Into It. If the image is a large photo, crop to the code and leave a margin of light space on every side. The decoder resizes anything wider than 1600 pixels before reading it, so a small code in a large photo is easier to find once cropped.
  3. Drop, Choose or Paste the Image. Drag the file onto the scanner panel, choose it from disk or the photo library, or press the paste shortcut anywhere on the page after taking a screenshot.
  4. Read the Decoded Text Before Acting on It. The whole payload is shown as text, with its type labelled: link, Wi-Fi, contact, plain text. Read the domain first, then decide whether to open it.

The scanner runs jsQR, the JavaScript port of the ZXing decoder, and asks it to try both polarities, so a light-on-dark code is read as well as a dark-on-light one. When the plain pass fails on a code with dot or rounded modules, a second pass fills the shapes out to full cells and reads the grid underneath. For the structure of the symbol rather than its content - version, error correction level, mask pattern and raw bytes - drop the same image into the QR code decoder.

How Many Pixels a QR Code Needs in a Screenshot or Photo

Aim for at least 3 pixels per module. A 25-module QR code, which is version 2, therefore needs about 75 pixels across plus its margin, and a code 200 pixels wide in a screenshot is comfortable. At 2 pixels per module a decode depends on where the grid lands on the pixels, and a slightly softer image takes it to zero.

That rule comes from the site's own measurement rig, scripts/dot-module-decode-rig.mjs, run on 18 September 2026. A 41-module level-H symbol with plain square modules was rendered, blurred, and downsampled to a fixed number of captured pixels per module, and each size was tried at 16 sub-pixel positions, because at 2 or 3 pixels per module whether a decode succeeds depends on how the grid lands on the pixels. The decoder was jsQR, which is what this site's scanner and many other browser scanners run. Apple's and Google's decoders are closed and generally more capable, so the figures are the shape of the curve rather than a phone's limit.

Captured pixels per moduleDecodes, sharp image (blur 0.6 px)Decodes, slightly soft image (blur 1 px)
10 down to 416 of 16 at every size16 of 16 at every size
316 of 1616 of 16
2.516 of 1616 of 16
210 of 160 of 16
Square-module row of the rig's results, jsQR, a 41-module version 6 symbol at level H. A dot-module code needs more pixels per module; the rig's other rows show how many.

To apply the rule, count the modules along one side, or read the version off the decoder: a version 1 code is 21 modules, and each version adds 4. Multiply by 3 for the minimum width in pixels and add 8 modules' worth for the quiet zone on both sides. A screenshot from a phone is usually well above the line; the image that falls below it is a thumbnail, a page-fit PDF, or a small code in a large photo that a decoder shrinks before reading.

That last case matters on this site. The scanner resizes any image wider than 1600 pixels on its longest side before the decode pass, so a code that is 150 pixels wide in a 4000-pixel photo becomes about 60 pixels wide, under 3 pixels per module even for the 21 modules of a version 1 code. Cropping to the code before dropping it in keeps the pixels the decode needs. QR code resolution covers the same arithmetic for a file that is being exported rather than read.

Why a QR Code Image Will Not Scan

An image of a QR code fails to decode for one of seven reasons, and the first three account for most failures: the crop cut into the quiet zone, the code has too few pixels per module, or a chat app recompressed the file. Work through the table in order.

What happened to the imageWhy the decoder failsWhat to do
Cropped tight to the dark modulesThe quiet zone is gone; the decoder cannot find where the symbol endsRecrop with a light margin, or paste the code onto a white background
Screenshot of a thumbnail or a page-fit PDFFewer than 2 or 3 pixels per moduleOpen the image full size or zoom the PDF in, then screenshot again
Sent through WhatsApp, Telegram or a mail clientJPEG recompression softens module edges and adds ringing along themAsk for the original file, or send as a document rather than a photo
Photographed at an angleThe module grid is stretched unevenly; the finder and alignment patterns correct some perspective but not a steep onePhotograph square on, or straighten the photo before decoding
Photographed under a light or through glassGlare lifts dark modules towards white and closes the contrast gapMove off the light source; do not use the flash
Light modules on a dark backgroundThe standard describes dark on light, and not every decoder tries the inverseUse a decoder that tries both polarities, or invert the image first
Screenshot taken in dark modeThe app inverted its colours around the code; a code with no margin of its own now sits on a dark groundSwitch to light mode for the screenshot, or crop and paste onto white

The quiet zone is the empty margin around a QR code that lets a scanner detect where the symbol begins and ends, and the standard specifies four modules on every side. A crop that removes the quiet zone leaves every module intact and still fails, which is why a tight crop is the first row of the table. ISO/IEC 18004 specifies four modules; on a bright screen a decoder usually manages with less, but not with none.

Dark mode deserves one more sentence, because the failure is odd to look at. An image of a QR code is not inverted by dark mode, so the code itself is still dark on light; only the page around it turns dark. A code with its quiet zone baked into the image keeps working. A code drawn without one, relying on the page's white background as its margin, loses that margin the moment the page turns black. The symptom is a screenshot that looks perfectly readable and decodes to nothing.

A JPEG straight from a camera and a JPEG that has been through a chat app are different files. Chat apps resample and recompress images to save bandwidth, and every pass moves the sharp edge between a dark module and a light one a little further towards grey. At 10 pixels per module the softened edge is a fraction of the module and does not matter; at 3 pixels per module the softened edge is most of the module. The fix is upstream: send the code as a document or a PNG, or ask for the original.

When the same QR code fails in every image of it, on every device, the code is the problem rather than the picture. Why a QR code is not scanning works through size, contrast and the trimmed quiet zone in the order they occur, and the QR code quiet zone guide covers the margin on its own.

Read the Decoded Text Before Opening It

A QR code from an image is read for the same reason as any other, and the same care applies: the decoded string is the thing to read before anything opens. A shortened link decodes to the short URL and not to its destination, because the redirect only resolves when the link is opened, and a code placed in an email or over a sticker can point anywhere. Reading the domain first - everything up to the first single slash after the scheme - is the check, and it is the one thing the photo-app routes skip, because a touch and hold hands over a link to tap rather than text to read, and the browser decoder shows the text. The full safety section, including quishing and the separate rule for login codes, is in how to scan a QR code.

Make Your QR Code

Free, with no account and no watermark. Choose a shape, add a logo, check the contrast, and export SVG, PDF, EPS or PNG - a static code with no subscription behind it.

Generate QR Code

Questions? Answered

Yes, on an iPhone XS, iPhone XR or later running iOS 15 or later. Open the screenshot in Photos, touch and hold the QR code, and the menu shows its link. Apple's support page for Live Text gives that requirement. On an older iPhone, open a browser-based decoder in Safari and choose the screenshot from the photo library; the decode runs on the phone.

Open the picture in Google Photos and tap the Lens button, or More and then Google Lens on versions without the button. Google Lens outlines the QR code and shows a chip with its link. Without Google Photos, open the Google app, tap the Lens icon in the search bar and choose the picture under Screenshots. A phone without Google services needs a browser decoder instead.

Yes, with a decoder in the browser; neither Windows nor macOS documents a built-in reader for a QR code in a saved file. Drop the PNG or JPG into a browser-based scanner, or paste a screenshot, and the text appears. The Windows Camera app scans QR codes only through the webcam, and Apple's Live Text page for Preview on the Mac does not mention QR codes.

Screenshot it, then read the screenshot in Photos or Google Photos, or with a browser decoder. A phone camera cannot photograph its own screen. Two routes skip the screenshot: on an iPhone, touching and holding an image in Safari, Messages or Mail shows the link; on an Android phone with Circle to Search, holding the navigation handle and circling the code reads it in any app.

Yes, by screenshotting it first, because readers take images rather than documents. Zoom the PDF in until the QR code is at least a quarter of the screen wide before capturing; a code screenshotted from a page-fit view is often only 40 or 50 pixels across, which is below the roughly 3 pixels per module a decoder needs. Then read the screenshot on the phone or drop it into a browser decoder.

At least 3 pixels for every module, measured with the jsQR decoder on the site's rig: a plain square-module code decoded at every one of 16 positions down to 2.5 pixels per module, and at 2 pixels a slight blur took it to none. A 25-module code therefore needs about 75 pixels across plus its margin. A code 200 pixels wide is comfortable for any version a screenshot is likely to hold.

Usually because the image is a thumbnail, the crop cut into the margin around the code, or the file was recompressed on its way through a chat app. Open the image at full size and try again; if the code is small in a large photo, crop to it with a margin. Lens sometimes selects text next to the code instead of the code, so zoom in until the QR code fills most of the screen.

It depends on where the decoding happens. Many online scanners send the image to a server, which means a boarding pass, a Wi-Fi code or a login code is handed to someone else. The scanner on this site decodes in the browser tab and makes no upload; the file is drawn to a canvas, read and discarded. Check a scanner's privacy note, or disconnect from the network before dropping the file in and see whether it still works.

Often, but not always, because WhatsApp recompresses photos and the softened edges between modules are the first thing a decoder loses. Open the image at full size rather than the chat thumbnail, and use touch and hold or Lens. If that fails, ask the sender to send the code as a document, which keeps the original file, or to send a screenshot instead of a photo.

Sometimes. ISO/IEC 18004 describes the symbol as dark modules on a light background, and not every decoder tries the reverse. The scanner on this site asks jsQR to try both polarities, so a white-on-black code is read. If a phone's photo app finds nothing in an inverted code, invert the image in any editor and try again, or drop it into a decoder that tries both.

Why KoloQR?

  • Create QR codes for websites, menus, Wi-Fi, PDFs, and business cards
  • Customize colors, logos, and unique shapes
  • Download high-quality PNG and SVG files
  • Built for both print and digital
Generate QR Code
A plain black QR code beside the same code restyled as a circle with brand colors