QR Generator

Draw pixel art and text, or upload an image (max. 640px by 640px) to get a scannable QR code with your custom art or message baked into the QR code image.

1 · Pixel art
selection (0 px):
grid ×

Checkerboard = transparent ("don't care" — those modules keep their QR data, so use as few opaque pixels as possible). A white halo around black shapes keeps stray dark modules from touching your art.

With ⬚ select: drag a pixel to move it, or drag on empty space to rectangle-select, then drag the selection anywhere. Shift+drag adds another rectangle, Ctrl/Cmd+click adds or removes single pixels, Delete erases the selection, Esc deselects. With pixels selected, the selection bar batch-fills them black/white/erased. Ctrl+Z undoes, Ctrl+Y (or Ctrl+Shift+Z) redoes.

2 · QR code


— WORKING —

Drag the code to reposition your art, or use the arrows. Moving it changes which parts of the code your art covers — scannability is rechecked live.

Created by Citizens Oakland • a nonprofit 501(c)(3) organization • Oakland, California • citizensoakland.org