# Encoding & IDs

QR Code Generator & Scanner

Generate QR codes from any text or URL, and scan QR codes from images or your webcam.

Updated

Generate QR Scan image / webcam Error correction Private

Loading QR Code…

What this page sends

  • Your input: Camera frames are decoded in the page and not recorded; images you open are read locally. Neither is sent to a server. Camera access is only requested when you start scanning.
  • Page load: Loading the page requests HTML, scripts and images from ByteKiln, fonts from Google Fonts, and sends Google Analytics page views, tool-usage events and catalog interactions (tool/category IDs, result status and whether a click followed search — never your input, output or search terms). Privacy & sharing

How the QR Code Generator & Scanner Works

The ByteKiln QR Code tool uses qrcode.js for generation and jsQR for decoding — both libraries run in your browser. Camera frames are decoded in the page and not recorded.

QR code generation

Encodes your text using the QR code standard (ISO/IEC 18004), applies the selected error correction level, and renders the result to a PNG data URL displayed as an image. Download the PNG for use anywhere.

Image scanning

Upload any image containing a QR code. The tool draws it to an off-screen canvas, reads the pixel data, and passes it to jsQR, which locates the finder patterns and decodes the payload.

Camera scanning

Requests webcam access via the browser MediaDevices API, draws each frame to a canvas, and runs jsQR on the frame data. When a QR code is detected, the camera stops and the decoded text is displayed.

Limitations

  • Scanning uses jsQR, which reads one standard QR code per image. Micro QR, Data Matrix, Aztec and 1D barcodes are not decoded.
  • Very small, blurred, angled or low-contrast codes may not be found; cropping the image around the code helps.
  • Camera scanning needs camera permission and asks for the rear camera; desktop webcams often struggle to focus on a small code.
  • Generation is limited by the QR standard's capacity (roughly 2,900 bytes at low error correction, less at higher levels), and the download is PNG only.

FAQ

Short answers for the things developers usually ask before trusting a tool.

What can a QR code store?

QR codes can store URLs, plain text, email addresses, phone numbers, Wi-Fi credentials (SSID/password), vCards (contact info), geo coordinates, SMS messages, and calendar events. The maximum capacity depends on the error correction level and content type — a URL of up to ~4000 characters fits comfortably at medium error correction.

What is error correction in QR codes?

Error correction allows a QR code to be read even if part of it is damaged, obscured, or dirty. Level L recovers from 7% damage, M from 15%, Q from 25%, and H from 30%. Higher correction produces a denser, more complex QR code — use H for QR codes that will be printed on physical objects, and L or M for digital screens.

Is my QR code data uploaded anywhere?

No. QR codes are generated with qrcode.js in your browser, and scanning uses jsQR in the page. Uploaded images and camera frames are decoded locally and not recorded or sent to a server.

Why can't the scanner read my QR code?

Common issues: the image is blurry or low resolution, the QR code is partially obscured, the lighting is uneven, or the code was generated with a custom design that the scanner can't parse. Try uploading a clearer image, or crop the QR code tightly before uploading.

How do I scan a QR code from my screen?

Take a screenshot of the QR code and save it as an image file, then upload it in the Scan tab. Alternatively, on mobile you can use the camera to scan a QR code displayed on another screen.

Related tools

Useful follow-ups when one conversion usually turns into three more.