facecard.ing

Guide · vCard

Make a vCard QR code with your photo in it

Most vCard generators say a photo needs its own hosted page. It doesn't — a bigger code has room for a full vCard and a dithered photo together.

Every vCard QR generator gives the same warning: add a photo and you need a second, hosted page for the code to point at, because a vCard dense enough to be useful is already too dense to also carry a picture. That is true of the codes those tools make — a fixed size, sized for a short link. It is not true of a QR code in general. Version and error correction are choices, not fixed properties of the format, and a bigger version leaves plenty of room for a photo once the contact details are in.

By default: no redirect, no hosted page, no server in the path. The vCard and the photo both live inside the one code, and both are still there with no network at all. Hosting the contact is offered as an option — a smaller, easier-to-scan code and a contact you can edit after printing, at the cost of a page we serve instead of the vCard itself — but it is opt-in, not the default.

How to do it

01

Switch the link kind to Contact

The fields that appear assemble a standard vCard behind the scenes — the same dialect both iOS and Android read straight off a camera, no app in between. By default nothing here is a redirect: the text BEGIN:VCARD sits inside the code itself, and you can leave it that way.

02

Give it only the fields you mean to hand over

A field left empty is left out of the vCard entirely rather than written blank, so start with name, phone and email and add company, title or a link only if you actually want them handed over too. Every field you add is more characters for the code to carry — the one real cost here, and a dial, not a wall.

03

Then drop in the photo

Same rule as any other code: a close, well-lit crop survives one bit per pixel; a flat, evenly-lit one turns to mush. Add the picture after the contact fields, not before — the code's version is decided by how much text it holds, and the photo settles into whatever module size that leaves.

04

Let the version grow

A four-line vCard and an eight-line one do not fit the same size code. As fields are added, the version steps up — more modules, packed tighter — rather than the code failing or falling back to a plain link. That step-up is the whole trick: room for a photo was never about keeping the code small, it was about leaving it enough redundancy to sit in, and a bigger version simply has more redundancy to give.

05

Check the save, not just the scan

A link only has to resolve; a vCard has to land correctly in a contacts app, in the right fields. Scan your own code with a couple of phones and confirm the name, number and email come out the way you typed them before you print or send it anywhere.

Why the generic advice says not to do this

The warning is accurate for a tool that fixes the QR version up front and only ever varies what fills it. Encode a phone number at that fixed size and there is room to spare; encode a phone number, an email and a name, and there is none left for anything else, so the photo has to live somewhere else — usually a page the code merely points at. This tool does not fix the version: it grows the code to fit the text first, at whichever error correction level you choose, and dithers the photo into whatever margin survives around the module centres. It is the same mechanism explained on how a picture fits inside a QR code, applied here to a vCard instead of a link.

When a link is the better choice

A hosted profile is still worth it if you want more than a vCard on a single code can reasonably hold — an address, more than one number, a bio, social links — since the format was never designed around one QR code’s worth of space. Reach for Contact mode when four to six lines are enough and you want the card to work with no network at all; reach for a link when you want more than that, or a way to see how many times it has actually been scanned.