Image Tools
QR Scanner — Scan Codes from Camera or Uploaded Image
Scan QR codes free with your camera or by uploading an image up to 10MB. jsQR detection, ~200ms throttle, HTTPS required — open the scanner and try it now.
TL;DR: Start your device camera via getUserMedia or upload a JPG/PNG/WebP image up to 10MB, let jsQR scan frames throttled to about every 200ms, and copy the decoded URL or text — camera access requires HTTPS and runs entirely in your browser.
Reviewed by FYN Tools Editorial · Guides ·
Privacy & processing: Camera frames and uploaded images are processed locally in your browser using the jsQR library — nothing is uploaded to a server. Camera access via getUserMedia requires a secure HTTPS context.
QR Scanner
Scan QR codes free with your camera or by uploading an image up to 10MB. jsQR detection, ~200ms throttle, HTTPS required — open the scanner and try it now.
- Inputs
- Live camera video stream (user gesture to start) or an uploaded image file up to 10MB
- Outputs
- Decoded QR code text (typically a URL or plain string) with copy button
- Processing
- Client-side (browser jsQR + getUserMedia)
- Limits
- Upload max 10MB; scan loop throttled to ~200ms intervals; HTTPS required for camera; permission denied blocks camera start
Quick steps
- Open the page over HTTPS (required for camera access on most browsers).
- Click Start Camera and grant permission when prompted, or use Upload Image for a photo.
- Point the camera at the QR code until the success overlay appears, or wait for upload processing.
- Read the decoded text in the result panel and use Copy or Open Link as needed.
- Click Stop Camera when finished, or switch cameras if multiple devices are listed.
- Upload a different image (under 10MB) to scan a code from a screenshot or photo.
- jsQR library for detection
- getUserMedia camera with Start/Stop controls
- Image upload up to 10MB
- ~200ms scan throttle
- HTTPS requirement for camera
- Copy and Open Link on results
Data input / output
| Inputs | Live camera video stream (user gesture to start) or an uploaded image file up to 10MB |
|---|---|
| Outputs | Decoded QR code text (typically a URL or plain string) with copy button |
| Formats | Camera: live video frames; Upload: common image formats (JPG, PNG, WebP, etc.) |
| Limits | Upload max 10MB; scan loop throttled to ~200ms intervals; HTTPS required for camera; permission denied blocks camera start |
| Processing | Client-side (browser jsQR + getUserMedia) |
How to Use the QR Scanner
- Open the page over HTTPS (required for camera access on most browsers).
- Click Start Camera and grant permission when prompted, or use Upload Image for a photo.
- Point the camera at the QR code until the success overlay appears, or wait for upload processing.
- Read the decoded text in the result panel and use Copy or Open Link as needed.
- Click Stop Camera when finished, or switch cameras if multiple devices are listed.
- Upload a different image (under 10MB) to scan a code from a screenshot or photo.
What is a QR Scanner?
Point your camera at a QR code or upload a photo containing one. The scanner uses the jsQR library to detect codes from live video frames or a static image, with scanning throttled to roughly every 200 milliseconds to limit CPU use. On success you get vibration and a short audio tone on supported devices, plus a copyable result string.
Camera access uses navigator.mediaDevices.getUserMedia and only works in secure HTTPS contexts — the tool does not call getUserMedia on page load; you start the camera with an explicit click. Uploaded images are capped at 10MB, drawn to a canvas, and scanned the same way. You can switch between available cameras on multi-camera devices.
Video frames or uploaded bitmaps are passed to jsQR with inversionAttempts set to "attemptBoth" so light-on-dark and dark-on-light codes are tried. A status overlay guides alignment while scanning; once a code is found, the result panel shows the decoded data and an Open Link action when the content is a URL.
How it works
QR Scanner reads your input from the panel above, applies jsqr library for detection, and shows a result you can copy or download. Options stay visible so you can iterate without reloading the page.
For a related task, try our QR Code Generator.
Common Use Cases & Examples
- Live event check-in: Scan a QR code on a phone screen or badge with your webcam and copy the embedded registration URL.
- Screenshot decode: Upload a PNG screenshot that contains a QR code when camera access is unavailable.
- Multi-camera devices: Switch between front and rear cameras on a phone to scan codes at different angles.
Input / Output Examples
Input
Upload a file Supported formats: PNG, JPG, WebP
Output
Processed file Download when processing is complete.
Frequently Asked Questions
How do I scan a QR code?+
You can scan QR codes in two ways: 1) Use your device's camera by clicking 'Start Camera' and pointing it at the QR code, or 2) Upload an image file containing the QR code. The tool will automatically detect and decode the QR code.
What types of QR codes can I scan?+
Our scanner can read standard QR codes containing URLs, text, contact information, WiFi credentials, email addresses, phone numbers, and other common QR code data types.
Do I need to grant camera permissions?+
Yes, if you want to scan QR codes using your camera, you'll need to grant camera permissions when prompted by your browser. This is required for real-time scanning functionality.
Can I scan QR codes from uploaded images?+
Yes! You can upload an image file (JPG, PNG, etc.) containing a QR code, and our tool will extract and decode the information from it. This is useful for scanning QR codes from screenshots or photos.
Is my camera feed secure?+
Yes, all camera processing happens locally in your browser. The camera feed is never transmitted to our servers, ensuring complete privacy and security.
What if the QR code doesn't scan?+
Make sure the QR code is clear, well-lit, and in focus. Try adjusting the distance, lighting, or angle. For uploaded images, ensure the QR code is clearly visible and not distorted.
Key Features
- jsQR library for detection
- getUserMedia camera with Start/Stop controls
- Image upload up to 10MB
- ~200ms scan throttle
- HTTPS requirement for camera
- Copy and Open Link on results
Benefits
Decode QR codes without installing a desktop app.
Copy or open scanned URLs in one step.
Keep camera frames private — processing never leaves your device.
When to Use QR Scanner
- Reading a QR code on a laptop without a native scanner app
- Decoding a QR code from a saved screenshot or photo file
- Quickly opening a URL embedded in a printed QR code via camera
- Testing whether a generated QR code encodes the expected string
Advantages
- Live camera scanning plus image upload in one tool
- jsQR with inversionAttempts for both color polarities
- Camera switching on multi-device systems
- No server upload — frames stay in the browser
Tips
- Use HTTPS — browsers block getUserMedia on plain HTTP except localhost.
- Hold the code steady inside the frame; scanning runs about every 200ms, not every frame.
- If the camera fails, upload an image under 10MB instead.
- Ensure adequate lighting so jsQR can read both normal and inverted color attempts.
Common Mistakes
Expecting the camera to start automatically on page load — permission is requested only after you click Start.
Uploading images larger than 10MB and wondering why processing is rejected.
Using the tool on HTTP and assuming camera failure is a bug rather than a browser security restriction.
Moving the code too quickly before the throttled scan loop can read a full frame.
Summary
Start the camera over HTTPS or upload an image up to 10MB, let jsQR decode the QR payload locally, and copy or open the result — no server upload required.