Drop your image here
or click to browse
JPG · PNG · WebP · GIF · BMP — processed entirely in your browser
How it works
- 1
Upload your image
Drop any JPG, PNG, WebP, or other image file onto the tool. It is loaded directly into your browser — nothing is sent to any server.
- 2
Configure the QR code
Enter the URL, text, WiFi details, or other content. Choose position, size, colour, opacity, and error correction level.
- 3
Download the result
The preview updates live as you adjust settings. When you are happy, download the combined image as PNG or JPEG instantly.
Why use this tool?
100% private
Your image and the QR code are composited using the HTML Canvas API, entirely in your browser. No data ever leaves your device.
Live preview
Every change — position, size, colour, opacity — updates the preview instantly so you can iterate without re-uploading.
Full control
Five positions, four sizes, custom fg/bg colours, opacity slider, edge padding, and error correction level.
Any image format
Works with any image your browser can decode — JPG, PNG, WebP, GIF, BMP, and more.
Five content types
URL, plain text, email with subject, phone number, and WiFi credentials — with a form designed for each.
PNG and JPEG output
Download as lossless PNG (best for graphics and transparency) or JPEG (smaller file size for photos).
When would you add a QR code to an image?
From product labels to event posters, here are the most common reasons to embed a QR code directly in an image.
Product packaging and labels
Embed a QR code on a product photo that links to the setup guide, warranty page, or video tutorial — ready to add to your website, Amazon listing, or print artwork.
Event flyers and social posts
Add a QR code to an event poster image so people can scan directly from Instagram, Facebook, or a printed flyer and land on the registration or ticket page.
Real estate and property photos
Place a QR code on a property photo linking to a virtual tour, full listing, or booking form — useful for social media posts and print ads.
Menu and restaurant promotions
Add a QR code to a dish photo or promotional banner that links directly to your digital menu or reservation system.
Art prints and design assets
Embed a subtle semi-transparent QR code on artwork, certificates, or design files that links to verification pages or artist profiles.
Presentation slides and documents
Export a slide or page as an image, add a QR code linking to the full document or a resource URL, then embed it back into your deck.
How the compositing works under the hood
No servers, no uploads — here is exactly what the browser does when you place a QR code on your image.
- 01
The image is read from disk
When you upload a file, the browser reads it locally using a FileReader and converts it to a data URL. The image bytes never leave your device.
- 02
The QR code is generated as a PNG
The qrcode library renders your content into a PNG data URL in memory. The QR size in pixels is calculated as a fraction of your image width, so it scales appropriately regardless of resolution.
- 03
Both images are drawn onto a canvas
An HTML Canvas element is sized to match your original image exactly. The original is drawn first at full resolution, then the QR code is drawn on top at the calculated (x, y) offset using ctx.drawImage().
- 04
Opacity is applied via globalAlpha
Before drawing the QR code, the canvas context's globalAlpha is set to your chosen opacity value. This blends the QR code transparently with the pixels beneath without affecting the background image.
- 05
The result is exported as PNG or JPEG
canvas.toDataURL() serialises the composited image in your chosen format. A temporary anchor element triggers a standard file-save dialogue — no server roundtrip at any point.
Tips for a scannable result
Placing a QR code on an image introduces risks that a plain white background does not — follow these tips to keep it reliably scannable.
- 01
Use a white QR background over busy image areas
If the area of the image behind the QR code is colourful or detailed, keep the QR background colour white. A white background creates a guaranteed contrast zone regardless of what is underneath.
- 02
Keep opacity at 100% for reliable scanning
Semi-transparent QR codes look elegant but are harder to scan, especially in poor lighting. Reserve low opacity for decorative uses. For any QR code that must be functional, use 100% opacity.
- 03
Choose a corner with a plain background
Scan failure rates rise sharply when the QR code overlaps high-contrast edges, text, or faces in the background image. Position the QR over the sky, a plain wall, or a uniformly coloured area.
- 04
Use error correction level H for image overlays
Level H adds 30% redundancy, meaning up to 30% of the QR code can be damaged or obscured and it will still scan. This is the right choice when the image background is unpredictable.
- 05
Test on multiple devices before publishing
Scan the downloaded image using at least two different phones and apps. Check on screen and, if printing, on a physical printout. What works on a monitor may fail when printed on a textured or glossy surface.
Related tools
QR Code Generator
Create QR codes for URLs, text, email, phone, and WiFi — customise colours, download PNG or SVG.
Watermark PDF
Stamp a custom text watermark on every page — control opacity, colour, and rotation.
PNG to JPG
Convert PNG, WebP, GIF, and BMP images to JPG — choose quality, batch convert, nothing uploaded.