QR Code Reader

Scan or upload a photo to decode any QR code, right in your browser.

Photo
Ready. Upload a photo or take one to decode a QR code.

Your photo and its decoded content stay in your browser. Nothing is uploaded to BroBroGo.

FAQ

Is my photo uploaded anywhere?

No. Decoding happens entirely on your device — the photo never leaves your browser.

Why couldn't it find a QR code in my photo?

Usually blur, glare, a steep angle, or a code that only fills a small part of the frame. Try a closer, sharper, well-lit shot. If a photo has more than one QR code, only the first one found gets decoded.

Why didn't my iPhone photo work?

HEIC photos straight from an iPhone's camera roll aren't supported yet. Convert it with our HEIC to JPG tool first, or use the camera capture option here, which saves as JPG directly.

Browser-Based QR Code Decoding

The QR Code Reader is a client-side utility designed to extract and decode information from QR codes embedded within digital images. Unlike traditional mobile applications that require installation, this tool operates directly within a web browser. Users can upload an existing image file from their device storage, drag and drop an image file into the interface, or capture a new photo using their device's integrated camera.

Once an image is provided, the tool processes the visual data to locate and decode the QR code. The extracted information is then displayed as plain text. Users can copy this text to their clipboard or, if the decoded content is a complete HTTP(S) URL, open the link directly in a new browser tab.

Supported Formats and Technical Limitations

The tool is engineered to process specific image formats and adheres to defined technical boundaries to ensure stable browser performance:

  • Accepted Formats: The reader processes images in JPG, PNG, and WebP formats.
  • Unsupported Formats: HEIC photos, such as those exported directly from an iPhone's camera roll, are not supported.
  • Image Scaling: If the longest side of an uploaded image exceeds 2200px, the tool automatically scales the image down before initiating the decoding process.
  • Single Code Detection: If an image contains multiple QR codes, the tool decodes only the first QR code it detects.
  • No Real-Time Video: The tool does not scan live, continuous video streams; it operates strictly on static images or single camera captures.

When a user clears the input, the tool cancels the active decoding task, releases the generated preview URL, and hides all previous results from the interface.

Security and Client-Side Privacy

A core design principle of this tool is local processing. Every photo provided and all resulting decoded content remain entirely within the user's local browser session. No data, images, or metadata are uploaded to BroBroGo servers.

Because the tool does not transmit data to external servers, it operates with specific security boundaries:

  • No URL Resolution: The tool does not access, ping, or pre-fetch the URL contained within a QR code.
  • No Instruction Execution: The tool does not execute embedded instructions, such as automatic Wi-Fi network configurations, payment triggers, contact card imports, or application launches.
  • No Verification: The tool does not verify the digital signature or the original source of the QR code.

When a user clicks the button to open a decoded web address, the link opens in a new window configured with noopener,noreferrer attributes. These attributes prevent the target website from accessing the referring window object and block the transmission of referrer headers, protecting the user's browsing context.

Optimizing Photos for Successful Decoding

To ensure the decoding algorithm can successfully locate and read a QR code from an image, the source photo must meet certain visual standards. If the tool cannot find a QR code, it displays the message: "No QR code found in this photo.".

Common physical and environmental factors that prevent successful detection include:

  • Blur: Motion blur from a moving camera or a lack of focus prevents the algorithm from distinguishing the individual modules (the black and white squares) of the QR code.
  • Glare: Bright reflections or hotspots on glossy surfaces can wash out sections of the code, destroying the contrast required for decoding.
  • Steep Angles: Capturing a QR code at an extreme perspective distortion can warp the finder patterns (the three large squares in the corners), making it impossible for the tool to orient the image.
  • Distance: If the QR code fills only a small fraction of the overall image frame, there may not be enough pixel resolution within the code itself to decode it.

For best results, position the camera directly parallel to the QR code, ensure even lighting without direct reflections, hold the device steady to avoid blur, and frame the shot so the QR code occupies a significant portion of the image.

Interface Messages and Error Handling

The tool communicates its status and any processing issues through specific interface labels and error messages:

  • Ready State: When waiting for user input, the interface displays: "Ready. Upload a photo or take one to decode a QR code.".
  • Processing State: While analyzing an image, the status changes to: "Reading the photo...".
  • Success State: Upon successful extraction of data, the tool displays: "Decoded." along with the "Decoded content".
  • No Code Detected: If the algorithm cannot identify a QR code within the image, it shows: "No QR code found in this photo.".
  • Unsupported Format: If a user attempts to upload an unsupported file type, the interface displays: "This image type isn't supported. Use JPG, PNG or WebP.".
  • Read Error: If the file is corrupted or cannot be opened, the tool displays: "Couldn't read this image.".

Frequently Asked Questions

Is my photo uploaded anywhere? No. Decoding happens entirely on your device — the photo never leaves your browser.

Why couldn't it find a QR code in my photo? Usually blur, glare, a steep angle, or a code that only fills a small part of the frame. Try a closer, sharper, well-lit shot. If a photo has more than one QR code, only the first one found gets decoded.

Why didn't my iPhone photo work? HEIC photos straight from an iPhone's camera roll aren't supported yet. Convert it with our HEIC to JPG tool first, or use the camera capture option here, which saves as JPG directly.