Passport photo maker
Drop a photo of your face. It gets cropped to the official size for your country, measured in millimetres, with a printable sheet of copies. Free, no watermark, and it never leaves your device.
A passport photo spec is two numbers: how big the frame is in millimetres, and how tall your head has to be inside it. Working out the crop from those is arithmetic. The sites that charge about ten dollars for the answer, or stamp a watermark across your face until you pay, are charging for the arithmetic and for holding your photo hostage. This page finds your face with a 0.4MB detector that downloads once and runs in your browser, shows you the crown, chin and eye lines it is measuring against, and lets you correct them — because the head-height estimate is the one thing that is likely to be slightly off.
Questions people ask
Is my photo uploaded anywhere?
No. The face detector is a 0.4MB file downloaded to your browser and run on your own device, and the cropping is done on a canvas in the page. The uploads counter in the top bar stays at 0, and you can watch the same thing in your dev-tools Network tab. This is a photo of your face attached to a passport application, which is not a thing to hand to a stranger's server for the sake of a rectangle.
Why do the other passport photo sites charge about ten dollars?
Because they can. The work is a crop computed from two published numbers — a frame size in millimetres and a head height in millimetres — and it costs them nothing per photo. The usual pattern is a free preview with a watermark across your face and a payment page to remove it. There is no watermark here, no signup, no per-photo credit, and the printable sheet is included.
Will the photo be accepted at the passport office?
It will be the right size, at 300 DPI, with the head height and eye line where the published spec says they should be — and it shows you the measurements so you can check. It cannot judge the things a human judges: your expression, whether you are smiling, glare on your glasses, a shadow behind your head, hair across your eyes, or a background that is not plain. Read your country's checklist for those. Admitting that is more use to you than a green tick that means nothing.
Can it make the background white?
No, and it is not going to pretend otherwise. Doing that properly needs a 25MB segmentation model, which is the wrong thing to load onto a page that only has to compute a crop. Your background is left exactly as it was. If you need it removed, the background remover on this site does that with the right model, and you can bring the result back here to crop it.
How do I print it, and what do I get?
You get a JPEG at exactly the pixel count for 300 DPI at your chosen size, with the DPI written into the file so a print shop's software does not read it as 72. You also get a PDF sheet — 4×6 inches or A4 — tiled with as many copies as fit, with faint cut lines. Print that at 100 percent, never "fit to page", or every copy comes out the wrong size. The EXIF, including the GPS coordinates of where the photo was taken, is dropped on the way out because the image is re-encoded from a canvas.
Before and after
If the background behind you is not plain, run the photo through the background remover first and bring it back here. If your photo is a HEIC and something else in the chain will not read it, the image converter turns it into a JPG. To check what metadata a photo is carrying before you send it anywhere, use the EXIF viewer and stripper.
How this works & why it’s private
The face is found by BlazeFace, a 0.4MB detector released by Google under Apache-2.0, run through the onnxruntime-web WebAssembly build. Both files are served from this domain, so no third party sees the photo or the address it came from. The model returns a face box — roughly eyebrows to just below the mouth — which is not the same thing as a head. Every passport spec is written about the head, crown of the skull to the bottom of the chin, so the head height is estimated from that box with a multiplier of 1.55 by default. That multiplier is a tuned constant, not a measurement, which is why it is on a slider and why the crown and chin lines are drawn on the preview: you can see whether the estimate landed on your actual head, and move it if it did not.
From there it is arithmetic. The crop height is the head height scaled so it occupies the fraction of the frame the spec asks for; the crop width follows from the frame's aspect ratio; and the whole rectangle slides vertically so the eye line falls where the spec puts it. The result is clamped to the edges of your photo, so a face near the edge produces a smaller-than-ideal crop and an amber readout rather than a black band. The output canvas is sized to the exact pixel count for 300 DPI, and the JPEG's density header is patched to say 300 DPI, because canvas encoders write "1:1 aspect ratio" and print software reads that as 72.
Re-encoding through a canvas is also what removes the metadata. The camera make and serial, the timestamp and the GPS coordinates of wherever the photo was taken do not survive the export — there is no code here that strips them, there is simply nothing left to carry them. Nothing is transmitted at any point. Open your dev-tools Network tab and watch while you use it.