Now supporting 25 documents across 5 countries

Compliant ID photos,
without the studio.

Snap a photo. SpecSnap auto-detects your face, removes the background, and crops to the exact pixel spec required by passports, visas, and IDs across Southeast Asia. Validated on-device. Ready to upload or print.

100% on-device processingPixel-exact government specsFree to try
Background removed
White · 400 × 514 px
Face height 75.0%
Target 70 – 80%
89 KBUnder 300 KB cap
9:41
SpecSnap
Singapore · Passport / IC
400×514 · 35 × 45 mm
Face
75.0%
Eye line
55.0%
Compliant
Save to Gallery
Supported regions
Singapore4
Malaysia5
Indonesia6
Thailand5
Philippines5
01 — How it works

Three taps from
any selfie to submission-ready.

No passport-photo booths. No Photoshop. The whole pipeline — detection, segmentation, crop, validation, export — runs entirely on your phone in under four seconds.

STEP 01

Snap or pick a photo.

Use the in-app camera with live face-framing guides, or import any shot from your library. Wear glasses, a hijab, anything — the app knows which specs forbid what.

Before
After
STEP 02

We auto-correct the frame.

Face detection locates your eyes, head, and chin. Background segmentation cleans to white — or the specific red, blue, or grey your document requires.

Compliant
STEP 03

Export to exact spec.

Save a digital copy for online portals, or generate a 4×6-print layout with crop marks. Every pixel within the tolerances your government publishes.


02 — Specifications

Every spec. Every tolerance.
Audited and kept current.

SpecSnap ships with the exact dimensions, face-height ratios, eye-line positions, file-size caps, and background colour requirements for 25 document types. Swap between them in one tap — the photo revalidates live.

Passport / IC

400 × 514 px · 35 × 45 mm
Face 70–80% · 8 MB
PassportIC

Visa

400 × 514 px · 35 × 45 mm
Face 70–80% · 60 KB
VisaStrict size

Work Pass

400 × 514 px · 35 × 45 mm
Face 70–80% · 8 MB
Work pass

Driving Licence

400 × 514 px · 35 × 45 mm
Face 70–80% · 8 MB
Licence
03 — Compliance engine

Live validation
against the actual rulebook.

Every crop is measured against the published tolerance ranges for the selected document. Pass or warn, in real time — no "submit and hope."

VALIDATOR · SG_PASSPORTALL CHECKS PASS
Dimensions
target 400 × 514 px
exact
400×514
Face height
70% – 80%
target 75%
75.0%
Eye line
50% – 60% from bottom
target 55%
55.2%
Background
plain white
ΔE < 3
#FFFFFF
File size
max 8 MB
JPEG q=92
182 KB
Sharpness
no motion blur
Laplacian var
1,284

The same checks the authority will run — before you submit.

  • Face height & eye line measured from the pupil midpoint with sub-pixel accuracy, clamped to the tolerance range your authority publishes.
  • Background colour checked across a sampled grid — catches gradients and fringe from poor segmentation (ΔE < 3 against spec).
  • File-size ceiling enforced per-spec — recompressed silently for sub-60 KB e-visa portals, lossless for print.
  • Sharpness & expression guards warn on blur, closed eyes, or non-neutral expressions before you export.
04 — Privacy by default

Your face never leaves
your phone.

SpecSnap runs face detection and background removal locally using on-device ML. No upload. No account required. No server copies. The only network call the app makes is for in-app purchases.

On-device processing

Face detection, background segmentation, and compliance checks all run locally. Nothing about your photo is transmitted.

No account, no email

Open and shoot. SpecSnap doesn't make you sign up. Your history lives only in the app's local storage.

Free to download

SpecSnap is completely free. Every spec, every export, no watermarks, no sign-up — just download and shoot.

0
Server uploads

Your image bytes are processed entirely on your device's secure enclave and neural engine.

<4s
End-to-end

From shutter to compliant export on a typical phone from the last four years.

25
Document specs

Passports, visas, driving licences, work passes, and national IDs across ASEAN-5.

4
Languages

English, Bahasa Melayu, Bahasa Indonesia, 简体中文 — switch on the fly.

05 — Questions

Before you download.

Will my photo actually be accepted by the authority?
SpecSnap enforces every published dimensional requirement — output resolution, face height, eye line, background colour, and file size — for each document. The remaining variables (focus, expression, lighting) are surfaced as warnings before you export, so you can fix them or reshoot. Where an authority publishes an exact file-size cap (e.g. 60 KB for Singapore visa, 300 KB for Malaysia passport, 240 KB for Indonesia passport), we recompress to hit it while preserving colour fidelity.
Which documents are supported today?
Singapore — Passport/IC, Visa, Work Pass, Driving Licence. Malaysia — Passport (Print & IMI Portal), Visa, Employment Pass, Driving Licence. Indonesia — Passport, e-Visa/e-VoA, Visa (35×45 & 4×6 red), KTP odd- and even-birth-year. Thailand — Passport, Visa, Visa-on-Arrival, e-Visa digital, Work Permit. Philippines — Passport, Visa, General 2×2, NBI Clearance, PRC License. 25 in total. More country packs ship in future updates — free for everyone.
Does SpecSnap upload my photo anywhere?
No. Face detection and background removal use on-device ML models bundled with the app. Your photo, the extracted face landmarks, and the final crop all stay in app-local storage. The only network calls the app makes are to fetch optional app updates — the photo pipeline itself is 100% local.
What phones does it run on?
iOS 15+ and Android 8+. Processing time scales with chip generation: expect 2–4s on any phone shipped in the last four years, a bit longer on older hardware. All processing is on-device.
How much does SpecSnap cost?
Nothing. SpecSnap is free to download and use — every spec, every export, no watermarks, no subscription, no sign-up. If we introduce paid features later, the core pipeline will stay free.

Shoot once. Ship anywhere in the region.

SpecSnap is free to download. Try it on the next passport renewal, visa application, or driving-licence form sitting in your inbox.