# How to add a QR code to a Zoom background

> Make a 1920×1080 image with the QR code in an upper corner and set it as your Zoom virtual background. Do not mirror the code: Zoom mirrors only your self-view, so a code that looks backwards to you is correct for participants. Verify from a second device.

Source: https://useqr.app/docs/how-to/how-to-add-a-qr-code-to-a-zoom-background · Last reviewed 2026-08-21 · UseQR is free forever, no signup.

---

## The mirroring trap, explained once

This is the entire reason this page exists. Zoom's **"Mirror my video"** setting (on by
default) flips *your own self-view* so you feel like you are looking in a mirror.
**Participants always see the unmirrored image.**

So when you set a background with a QR code:

- In your self-view the code looks **backwards**. That is correct behaviour. Leave it.
- If you "fix" it by flipping the image in an editor, it now looks right to you and is
  **mirrored for everyone else**, and while some decoders tolerate
  [mirrored codes](/docs/spec/mirrored-qr-codes), many phone cameras will simply not
  read it.

The rule: never flip the artwork, and verify from a second device or a colleague's
screen, never from your own preview. The same class of mistake (a design tool flipping
a code somewhere in the pipeline) is covered in
[QR code mirrored by a design tool](/docs/troubleshooting/qr-code-mirrored-by-a-design-tool).

## Building the background

1. Canvas: **1920 × 1080 px** (Zoom's recommended 16:9 size).
2. Generate the code with the [URL generator](/url); keep the payload short: a link to
   one page, not a URL with parameters.
3. Place it in an **upper corner at roughly 350 × 350 px**, on a solid white card with a
   full [quiet zone](/glossary/quiet-zone). You occupy the centre and lower half of the
   frame; corners survive.
4. Keep the code away from where your shoulders and gestures reach. Zoom's background
   segmentation is decided per pixel, and your outline chewing into the code every time
   you move ruins it, error correction absorbs some damage, but a hand held up in
   front of the code is fatal for that moment.

Set it under **Settings → Background & effects**, then confirm with a second device.

## Honest limits: when a background code actually works

The background is only as big as your video tile. In **speaker view or a pinned
full-screen tile**, a 350 px code displays large enough to scan off the screen, the
usual [monitor-scanning rules](/docs/scanning/scanning-a-qr-code-off-a-monitor) apply.
In **gallery view**, a tile may render 300 px wide in total, which makes your code
50–60 px, unscannable, full stop.

So treat the background code as ambient signage for meetings where you are the speaker:
webinars, teaching, office hours, sales demos. For anything that matters:

- put the same link in the chat,
- or share a slide with the code full-screen for ten seconds: a shared slide is
  bigger, unmirrored by construction, and works in every view.

If the meeting is recorded, remember the code is burned into the recording: make sure
the destination will still be live when people watch later.

Before the real meeting, run the image through the [validator](/validate) and do one
test call: second device, gallery and speaker view, scan from a realistic distance.

## FAQ

### Why does my QR code look backwards in Zoom?
Because Zoom mirrors your self-view by default. Participants see the unmirrored image, so a code that reads backwards to you is displaying correctly to everyone else. Do not flip the image to compensate.

### Can people scan a QR code from a Zoom background?
Yes, when your tile is large (speaker view or pinned full screen), and the code is around 350 pixels on a 1920×1080 background. In gallery view tiles are too small and the code will not resolve.

### What size should a Zoom virtual background be?
1920 × 1080 pixels, 16:9. Build the background at that size and place the code as a large element in an upper corner rather than scaling a small code up later.

### Is there a better option than putting the code in the background?
Often yes. Sharing a slide with the code full-screen for ten seconds beats the background in every view mode, and pasting the link in chat covers everyone who cannot or will not scan.

## Try it

- https://useqr.app/url
- https://useqr.app/validate
