ToolActToolAct

ID Photo Creation Tool

AI background removal, create standard passport photos instantly

Drag photo here, or click to select file

Supports JPG, PNG formats, front-facing portrait recommended

What is an Online Passport Photo Maker?

The online passport photo maker turns a portrait into a document-style photo with the required crop, background color, and size. It uses automatic background removal to isolate the person and supports common needs such as passport, ID, visa, application, school, and work badge photos. This is convenient when a formal image is needed quickly for online forms or internal records. Requirements can still vary by country, agency, and document type: head size, eye line, shadows, glasses, clothing, expression, and photo age may all matter. The tool helps prepare and preview a compliant-looking image, but official submission rules should be checked before relying on the final file.

How to Use

How to use

  1. Upload a front-facing portrait photo (supports JPG, PNG formats)
  2. Select photo size (US Passport, EU ID, etc.)
  3. Select background color (white, blue, or custom)
  4. Click 'Start Processing' button and wait for AI background removal
  5. Click 'Download Photo' to save the result

Photo Requirements

  • Check the target document rules for size, background color, head position, clothing, glasses, and shadow restrictions.
  • Preview before downloading; automated background removal can leave artifacts around hair, shoulders, or transparent objects.

Use Cases

Crop a portrait to a passport or visa presetUpload a portrait, run the in-browser background-removal model, and generate a PNG at a locale-specific ID, passport, resume, or visa size. Head height should sit between 28 and 33 mm on a 35 by 45 mm print, so the canvas crop is only a starting point before the final agency check.
Test standard background colors before downloadSwitch between white #FFFFFF, blue #198CFF, red, or a custom hex after background removal to preview which version fits the target form or print requirement. Most embassies still require a uniform color and reject hex values that drift more than a few points from the official swatch. China exit-entry permits and several Schengen photo specs reference red around #C00000, while UK passport accepts only neutral #FFFFFF, so a single preset set often still needs a manual hex override before submission.
Use the output as a draft, not a finished submissionThe canvas crops and centers the processed image to preset pixel sizes, but official submissions also enforce face size, head position, clothing, lighting, file size, and recent-photo rules. Check the exported file against the specific agency instructions before submitting it. US passport and US visa specs both demand a 2 by 2 inch print at 51 by 51 mm, with a head height of 1 to 1 3/8 inches (25 to 35 mm), which is why a generic one-inch preset will be rejected for either application.
Compare size presets side by side before exportingOpen two locale presets such as one-inch, two-inch, US visa, or EU passport and check pixel width, height, and effective DPI before exporting, so the same portrait fits multiple forms without re-uploading the file. The processed image stays in browser memory only and is never uploaded to a server during the comparison.
Re-render with a different background without re-uploadingSwitch from white to blue or red and re-render the processed portrait to confirm which background the target agency actually wants, since printed or scanned submissions often reject the wrong shade or fail automated checks. Because the image is re-rendered locally, the original portrait file is never transmitted during these color changes.

Technical Principle

Document-photo specs are dimensioned in millimetres at print and in pixels at upload, joined by the print DPI: pixel = inch × dpi, so a 25 by 35 mm one-inch print at 300 DPI is exactly 295 by 413 pixels, a 35 by 49 mm two-inch print is 413 by 579 pixels, and a US passport or visa 2 by 2 inch print is 600 by 600 pixels. Each preset stores the target width, height, and DPI tuple and the canvas is resized to those exact pixel dimensions before any further work. Resizing is done by drawImage on an OffscreenCanvas or HTMLCanvasElement, which on Chromium and Firefox uses a bilinear or trilinear filter for downscaling. Background replacement runs an in-browser segmentation model that outputs a soft alpha mask the same size as the source, so a uniform fill colour (white #FFFFFF, China visa blue #198CFF, or a custom hex) can be composited under the subject without leaving a halo. The final image is exported through canvas.toBlob('image/jpeg', 0.92) for paper-style backgrounds or 'image/png' when an alpha channel must survive. The failure modes are predictable. The exported file strips EXIF metadata, including orientation, so a portrait shot in landscape mode needs an explicit rotate before crop. The segmentation model is shipped as a WebAssembly bundle that has to download once (50-100 MB) and then runs from cache. And because every embassy publishes its own head-height window (US passport demands 25-35 mm head from chin to crown), pixel-perfect output is still only a first draft until checked against the official spec.

  • Pixel-DPI bridge: width_px = width_in × dpi, so 1-inch (25×35 mm) at 300 DPI is 295×413 px and 2-inch (35×49 mm) is 413×579 px.
  • Common presets: US passport/visa 2″×2″ at 600×600 px, EU/UK 35×45 mm, HK/Macau permit 33×48 mm blue (#198CFF), Schengen 35×45 mm white.
  • Resampling: HTMLCanvas.drawImage uses bilinear filtering on downscale, so heavy crops should be done in a single drawImage call to avoid compounding interpolation loss.
  • Background replacement: an in-browser segmentation model emits a soft alpha mask; the chosen fill colour is composited under the subject before export, no server round trip required.
  • Export: canvas.toBlob('image/jpeg', 0.92) for paper-style submissions and 'image/png' when alpha must be preserved; both strip EXIF orientation, so rotate before crop.
  • Spec drift: head-height windows vary by agency (US passport 25-35 mm from chin to crown, Schengen 32-36 mm), so the preset is a starting frame and the embassy rules are the binding check.

Examples

1-inch ID photo (China standard, 25 x 35 mm)

Size preset: 1-inch ID
Pixel dimensions: 295 x 413 px @ 300 DPI
Background: White (#FFFFFF)
Use: resume, work badge, student ID
Head height target: about 21 mm (60-70% of canvas)

2-inch passport photo (35 x 49 mm)

Size preset: 2-inch passport
Pixel dimensions: 413 x 579 px @ 300 DPI
Background: White (#FFFFFF)
Use: passport, driver's license renewal
File output: PNG, around 200-400 KB

US passport / visa (2 x 2 inch square)

Size preset: US passport / US visa
Pixel dimensions: 600 x 600 px @ 300 DPI
Background: Pure white (#FFFFFF)
Head height: 1 to 1-3/8 inch (25-35 mm), eye line 1-1/8 to 1-3/8 inch from bottom
Reject reason most common: head too small / off-white background

HK / Macau permit (33 x 48 mm, blue background)

Size preset: Travel permit
Pixel dimensions: 390 x 567 px @ 300 DPI
Background: Blue (#198CFF)
Use: HK/Macau exit-entry permit, some PR card systems
Note: Schengen visa wants white, not blue - switch the swatch before export

FAQ

Is my photo uploaded for processing?

No. Background removal, color change, and resizing happen in your browser using canvas and WebAssembly. The image bytes never leave your device. Confirm in the Network tab while you process a photo.

What standard sizes and backgrounds does it support?

Common visa/passport/ID sizes are preset: Chinese 1-inch (25×35 mm), 2-inch (35×49 mm), Japanese license, US passport (2×2 in), Schengen visa (35×45 mm), plus custom dimensions. Background colors include the standard white, blue (Chinese ID), red (some visa applications), and gray.

How does background removal work?

The page uses an in-browser segmentation model (typically a small ONNX or TFLite model) that distinguishes person from background pixel-by-pixel. It runs in WebGL or WebAssembly. Quality depends on lighting and contrast in the original photo.

Why is the cutout edge fuzzy or imperfect?

Hair against a similarly-colored background is the hardest case for any segmentation model. Photograph the subject with even, soft lighting against a contrasting background, avoid translucent clothing edges, and use the manual brush (if provided) to refine. A pro tool like Photoshop or remove.bg can handle harder cases.

What resolution should the input be?

Higher is better. The output is resized to the chosen ID dimensions, but a higher source resolution (1080p or above) gives the segmentation model more pixels to work with, especially around hair and clothing edges. Avoid heavy JPEG compression on the source.

Can I print the result directly?

Yes - the page exports at print-grade DPI (typically 300 or 600). When ordering at a print shop, double-check that the file's pixel dimensions match the requested physical size at the chosen DPI. Some printers re-resample; ask if they require an exact pixel size.

Will the result pass official acceptance?

Maybe. Background, head size, and pose requirements differ by country, agency, and even local office. The page handles the visual side; head-size, neutral expression, no shadows on face, and current-photo rules are still on you. Verify against the official requirement document before submission.