Menu
Pricing
My Account
Free · No Upload · No Account

Add QR Code to Image

Upload any photo or image, generate a QR code for a URL, text, or WiFi network, and place it exactly where you want — then download in seconds.

Drop your image here

or click to browse

JPG · PNG · WebP · GIF · BMP — processed entirely in your browser

How it works

  1. 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. 2

    Configure the QR code

    Enter the URL, text, WiFi details, or other content. Choose position, size, colour, opacity, and error correction level.

  3. 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.

  1. 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.

  2. 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.

  3. 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().

  4. 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.

  5. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Frequently asked questions

Is this tool really free?
Yes, completely free. No account, no subscription, no watermarks on your output. Upload an image, place your QR code, and download the result.
Is my image uploaded to a server?
No. Everything happens entirely in your browser using the HTML Canvas API. Your image and the generated QR code never leave your device.
What image formats are supported?
You can upload JPG, PNG, WebP, GIF, BMP, and any other format your browser can decode. The output can be downloaded as PNG or JPEG.
Will the QR code still scan after being placed on an image?
Yes, as long as there is sufficient contrast between the QR code and the area of the image behind it. Choose a busy or dark background area carefully — use a white QR background and high error correction to maximise scanability.
What does the opacity slider do?
It controls how transparent the QR code is when composited onto your image. At 100% opacity the QR code is fully opaque and easiest to scan. Lower opacity blends it into the image — useful for subtle watermark-style placement.
What is error correction and which level should I choose?
Error correction adds redundancy so a QR code can still be scanned even if part of it is obscured or damaged. For images, use level H (30%) — it allows the most coverage loss, which matters when the QR code is placed over a busy background.
Can I use this for print?
Yes. Upload a high-resolution image, choose PNG output, and download the result. The QR code is rendered at a size proportional to your image, so a 3000 px image will produce a correspondingly large QR that prints cleanly.
What is the best position for a QR code on an image?
Bottom-right or bottom-left corners work well for product images and event posters — they are visible without obscuring the main subject. For social media images, bottom-centre or corner placements keep the face or focal point clear.