Every other way of putting a picture in a QR code pays for it somewhere. This is where.
A scanner samples a small area at each module's centre, not the whole module. We force those centres to exactly what the encoder demands and spend the space around them on your picture — so the code is unchanged, not repaired.
Artistic QR tools damage modules and lean on error correction to fix them, spending the margin that exists for glare, creases and bad light. Ours is untouched: the full 30% is waiting for the real world instead of already used up.
A photo code from MostlyQR is still a MostlyQR code — repoint it after it is printed, count the scans, and it never expires, even if you cancel.
Yes. A scanner does not read the whole of each module — it samples a small area at the module's centre and thresholds that. Everything outside those centres is free space, so a photograph can live there while the code stays exactly as readable. MostlyQR forces each centre to the value the encoder demands and spends the rest of the module on your picture.
Not in MostlyQR. This is the difference that matters. Most artistic QR tools overwrite modules and rely on error correction to repair the damage, which spends the redundancy that exists to survive glare, creases and bad light. A MostlyQR photo code changes no module at all — every centre still carries its exact value, so the full 30% redundancy of error-correction level H is still there when someone scans it off a rained-on menu.
A bold subject on a plain, light background, filling the frame. A QR carries roughly fifty by fifty tones, which is far less detail than it sounds — so strong shapes survive and fine detail does not. Square-ish subjects use the space best, because the code is square. Avoid a shadow falling on the background: on a white ground it is the only other dark thing in frame, so it reads as part of the subject.
The generator here is free and needs no account — the photo never leaves your browser, and the code is rendered on your own device. What an account adds is a dynamic code: one you can repoint after it is printed, and whose scans you can count.
Only if it is dynamic. The code on this page is static — it encodes your link directly, so it works forever but can never be changed. A MostlyQR dynamic photo code encodes a short link instead, so you can swap the destination after the posters are up, and MostlyQR codes never expire even if you cancel.
Because it would be a lie. A dithered photo code is made of pixels, not shapes — a mid-size code is around a hundred and fifty thousand of them. Wrapping that in an SVG would give you a vector file that contains a raster image, which is worse than an honest PNG. So photo codes export as PNG, JPG and PDF.
It scans as reliably as a plain code of the same size, because none of the error correction has been spent. The ordinary print rules still apply: keep the quiet zone, print it large enough, and test the actual print rather than the screen — advice that is true of every QR code, not just photographic ones.
Mosaic draws only the code's own modules, sizing each one by how dark the picture is at that point, and leaves the space between them clean — it still reads as a QR code. Halftone turns the whole square into continuous photographic texture, so it reads more like a photograph and less like a code. Both are the same scannable matrix underneath.