Scanning, and what to do when it fails

Most scanning failures come down to four things: contrast, size, the quiet zone, and the destination being wrong rather than the code. These answers work through them in the order worth checking.

QR Code Scanning

Yes. The ScanMe Online scanner runs in your browser at /scan, with nothing to install. It works two ways: live camera scanning, or decoding an image you upload or drag in (a photo, screenshot or saved file). It reads QR codes and common one-dimensional barcodes such as Code 128, EAN, UPC and Code 39. Everything is decoded locally in your browser.

Yes. Switch the scanner to image mode, then upload a file or drag and drop it onto the page. This works for screenshots, downloaded images and photos of printed codes, which is what you need when the code is on the same device you are using, where pointing the camera at the screen is impossible. The image is processed entirely in your browser and is not uploaded to a server.

Camera access is needed only to see the code you want to scan, and the feed never leaves your device. Frames are analyzed locally in your browser using an open-source decoding library; no video or images are sent to Androrangers servers, nothing is recorded, and the camera stops when you leave the scanner. Your browser will ask for permission the first time. You can revoke it at any time in browser settings.

Almost always a permissions issue. If you previously denied access, the browser silently blocks the camera: click the camera or lock icon in the address bar and set Camera to Allow, then reload. Also check that no other app or tab is currently using the camera, and that your operating system allows browser camera access (Windows and macOS both have system-level camera privacy switches). Camera scanning also requires a secure (https) connection, which scanmeonline.com always uses.

On phones and tablets the scanner requests the rear (environment-facing) camera, which is the right one for scanning printed codes; on laptops it uses the default webcam. There is currently no in-app camera picker. If you need to scan something with a different camera, use image mode instead: photograph the code with any camera and upload the picture.

No, and that is deliberate. After a scan, ScanMe Online shows you the decoded content first: the full URL, text, or contact details. Opening the link, calling the number or composing the email each require you to press a button. This preview step lets you check exactly where a link leads before visiting it, which is your best defense against malicious QR codes.

Yes. The scanner is a web page, so it works in any modern browser on Windows, macOS, Linux, Android and iOS, with a camera or via image upload. On phones you can also simply use the built-in camera app for QR codes; the ScanMe scanner adds barcode support, image-file decoding and a safety preview of the result. For frequent scanning on Android, the ScanMe app adds offline and batch scanning.

QR codes plus the widely used one-dimensional barcode families: Code 128, EAN-13 and EAN-8, UPC-A and UPC-E, Code 39 and other common retail formats. It decodes them from the camera or from images. Industrial 2D formats beyond QR (such as Data Matrix and PDF417) are supported in the ScanMe Android app rather than the web scanner.

Only on your own device. Scan results are added to the History page, which is stored in your browser’s local storage and never on our servers. History keeps up to 100 recent items; you can favorite entries to protect them, or clear everything at any time. Note that scanned content (including things like Wi-Fi passwords) sits in that local history until you clear it, so clear it on shared computers.

Troubleshooting

Work through this checklist, in order of likelihood: (1) contrast: the code must be clearly darker than its background; (2) size: too small for the scanning distance is the top print failure; (3) quiet zone: restore the clear margin if the layout crowded the code; (4) logo — if it covers too much, shrink it (error correction should be H with any logo); (5) over-styling — decorative dots/eyes at small sizes; (6) blur — never upscale a small export; re-export at 1000–2000 px; (7) print quality, glare and lighting; (8) the content itself — verify the URL is correct and live. The editor’s scan reliability score catches most of these before download, and a test on both an iPhone and an Android phone catches the rest.

Usually the code is near the edge of readability, and cameras differ. Older or budget phones have weaker cameras that give up first on low contrast, small size, glare or decorative styling. Treat the weakest phone you can find as the benchmark: raise contrast, increase size, simplify styling or raise error correction until it scans reliably there. Also confirm the failing phone’s camera app actually supports QR detection (nearly all modern ones do) or use a scanner app.

Yes. A QR code technically holds up to about 4,000 characters, but each additional character makes the module grid denser, and dense codes need to be printed larger and scanned closer. A long URL with many parameters can produce a code that fails at business-card size. Keep content short where you can; for very long URLs, a dynamic code helps: the printed pattern only ever encodes the compact short link, no matter how long the destination is.

Almost always because a small image was scaled up. The downloads are pixel images: a 300-pixel export enlarged to a poster becomes soft, and module edges blur. Re-export from the generator at up to 2000 pixels and place it at or below its natural size. Also check the printer itself: draft mode, ink spread on porous paper, and JPG compression artifacts each degrade edges, so prefer PNG at high resolution on decent paper stock.

Often, yes. That is what error correction is for. Depending on the level chosen at download (L through H), scanners can reconstruct 7% to 30% of a damaged or obscured code. Damage to the three large corner squares is the exception: scanners need those to locate the code, so harm there is fatal faster than damage elsewhere. For codes destined for tough environments, choose level H and print larger than the minimum.

First try a hard refresh (Ctrl/Cmd+Shift+R), and check whether the problem persists in a private window or another browser, which isolates extension and cache issues. For camera problems, see the camera permissions answer above. If it still misbehaves, report it through the contact page with your browser name and what you were doing; screenshots help enormously. We read every message.