Deze pagina wordt in het Nederlands getoond, de taal waar je browser om vraagt.
De code van deze pagina is niet gestart.
Open je index.html rechtstreeks uit een map, dan worden JavaScript-modules geblokkeerd en gebeurt er niets zodra je een foto kiest. Serveer de map in plaats daarvan over http:
Gaat open zodra je hierboven een bestand kiest.klaar — verbreek de verbinding en dit blijft gewoon werken.niet beschikbaar in deze browser (al het andere werkt gewoon).heeft https:// of localhost nodig om offline te kunnen bewaren.bewaren lukt hier niet, maar er wordt hoe dan ook niets geüpload.Je bestanden zijn nergens heen gegaan. {total} bestanden geladen, allemaal van deze site zelf. {platform}Iets heeft {hosts} benaderd, en dat doet dit gereedschap nooit. Dat is het waard om na te kijken. {platform}De eigen scripts van de site voor advertenties, meting en de donatieknop kwamen van {hosts} host; geen daarvan heeft een bestand of een byte ervan gekregen.De eigen scripts van de site voor advertenties, meting en de donatieknop kwamen van {hosts} hosts; geen daarvan heeft een bestand of een byte ervan gekregen.Er ging iets mis: {detail}. Herlaad de pagina om opnieuw te beginnen.{count} bestand wordt gelezen…{count} bestanden worden gelezen…Een voorbeeld proberenVoorbeeld wordt gemaakt…Deze browser kon het voorbeeld niet maken. Kies in plaats daarvan een bestand.
● Je foto's worden nooit geüpload. Er is geen server.
Het uitsnijden, het meten, het uitlezen van de achtergrond en het printen gebeuren allemaal in je eigen browser, op je eigen hardware, met de JPEG-encoder die er al in zit. Deze tool heeft geen enkele netwerkfunctie, niets op te halen en niets te versturen, en al was die er wel, dan zit er aan de andere kant van deze pagina nog steeds geen server waar een foto van je gezicht naartoe kan.
✗ Geen upload
✗ Geen account
✗ Geen watermerk
✓ Werkt offline
✓ Open source
Live controle:bezig met controleren…
Offline:bezig met controleren…
Geloof ons vooral niet op ons woord. Open DevTools, hou het tabblad “Netwerk” in de gaten en maak een pasfoto. Geen enkel verzoek draagt een afbeelding, een miniatuur, een bestandsnaam of ook maar één byte van wat je koos. Of trek de stekker uit je internet en maak er alsnog een.
Hoe je de privacybelofte controleert
Een foto van je gezicht verlaat dit apparaat nooit. Dat weegt hier zwaarder dan bij de meeste tools: het bestand dat deze pagina in handen heeft is een beeld van je gezicht, en wat je ermee gaat doen noemt bovendien het land waarvan je het document aanvraagt. De Content-Security-Policy noemt elk adres dat deze pagina mag benaderen, en geen daarvan is van ons. Er is hier geen eindpunt waar je foto verzameld zou kunnen worden.
Niets hier haalt iets op. Er staat nergens in src/ een fetch, een XMLHttpRequest of een sendBeacon. Het regelboek is een tabel in src/specs.js, meegeleverd met de pagina en met haar in de cache gezet: er is geen landenlijst om op te zoeken en niets waartegen je foto op afstand gecontroleerd wordt.
Het gezicht wordt gevonden zonder gezichtsmodel. Er zijn geen gewichten om te downloaden, geen inferentie-omgeving om ze in te draaien en niets dat wordt opgehaald: de kruin komt uit de omtrek van je hoofd tegen de muur erachter, de pupillen uit de plekken van het gezicht die donkerder zijn dan wat eromheen zit. Niets daarvan leest huidskleur, en dat is precies waarom het zo geschreven is — een model dat het mis heeft, heeft het ongelijk mis: slechter bij sommige gezichten dan bij andere. Het is een startpositie en geen oordeel: de pagina zegt welk van de vier punten ze niet kon meten, elke stip blijft versleepbaar, en met Ik zet ze zelf staat het helemaal uit.
Wat Google laadt, en wat het niet te zien krijgt. De advertentie- en meetscripts komen van Google, de doneerknop van Buy Me a Coffee. Geen van alle krijgt iets over je foto, je gezicht of het land waarvan je de regel koos. Elke regel die een bestand leest, uitsnijdt, meet of schrijft, wordt vanaf deze herkomst geserveerd en staat in de repository.
Het werkt offline. Verbreek de verbinding en de tool werkt onveranderd door, omdat er nooit een netwerkstap in zat. Eenvoudiger bewijs bestaat er niet.
Controleer het zelf. Je hoeft niets van het bovenstaande op ons woord aan te nemen. Een buildscript maakt deze pagina uit de sjablonen en de configuratie in de repository, en dat script kun je lezen en zelf draaien. Het resultaat staat vastgelegd op de branch dist, dus je kunt wat er geserveerd wordt vergelijken met wat een build van de bronnen oplevert:
De bestanden die je als eerste wilt lezen zijn config/site.toml voor de Content-Security-Policy, src/specs.js voor het regelboek — de gepubliceerde cijfers van elk land, met de instantie en de datum waarop elk cijfer gelezen is — src/detect.js voor hoe de vier punten gevonden worden — een omtrek en twee donkere plekken, zonder enig model —, src/geometry.js voor het rekenwerk dat vier gezette punten in een uitsnede verandert, en src/jpeg.js voor de twee wijzigingen aan de kop die de printresolutie in het bestand zetten en een te kleine upload optrekken naar de grootte waar een formulier op staat.
Als de beveiligingssoftware van je werkgever voor een upload waarschuwt. Die let op het moment dat er in een browser een bestand wordt gekozen, en kan niet weten of de pagina het wil versturen — dus waarschuwt hij bij het kiezen. Hier wordt niets verstuurd: open de ontwikkelaarstools, ga naar Netwerk en kies een bestand. Er is geen verzoek dat het meeneemt, en helemaal geen verzoek behalve de lokale voorbeeldweergave van de pagina. Diezelfde controle doet je IT-afdeling in een halve minuut.
1 Kies de foto
Elk plaatje dat je browser kan openen. Een telefoonfoto tegen een effen muur, bij daglicht, van zo'n anderhalve meter afstand is waar de meeste van deze regels omheen geschreven zijn — en hij wordt rechtstreeks van je schijf gelezen, niet ergens heen gestuurd.
2 Kies het land en het document
Elk cijfer hieronder is de gepubliceerde eis, overgenomen van de instantie die eronder genoemd wordt. Niets aan deze lijst is gegokt, en niets ervan wordt opgehaald: het is een tabel in src/specs.js, meegeleverd met de pagina.
De cijfers, om zelf in te typen
KB betekent hier 1024 bytes, en dat is ook wat deze formulieren ermee bedoelen.
3 Markeer het gezicht en controleer de kadrering
De kruin, de kin en elke pupil. Die vier punten zijn het hele verhaal van wat een regel meet, en de uitsnede wordt genomen waar ze uiteindelijk staan — sleep het punt dat verkeerd is geland, en druk dan op Pas het kader aan. Ze vinden is de foto zelf opmeten: de rand van je hoofd tegen de muur erachter, en de donkerdere plekken waar ogen zitten. Er zit geen model in en er wordt niets opgehaald, en het is een startpositie en geen oordeel — daarom is het aan jou om het te verbeteren, en daarom zegt de regel hieronder welke van de vier niet gemeten kon worden.
Kies een foto, dan verschijnt hier het uitsnedekader.
4 De achtergrond
Gelezen uit een strook over de bovenkant van de uitsnede en langs beide zijkanten, boven de schouders — de delen van het beeld die niets anders dan achtergrond horen te zijn. Gemeten in CIE Lab in plaats van in RGB, want twee grijzen die veertig RGB-eenheden uit elkaar liggen zijn niet te onderscheiden en veertig eenheden blauw is een andere kleur.
Wat die van jou oplevert
Wat de regel vraagt
5 Sla het op
Klaar
ICAO-normElk biometrisch reisdocumentMachineleesbare opnameHet kader van 35 x 45 mm is waartegen het grootste deel van de wereld uitgeeft, en 70-80 procent hoofdhoogte met de ooglijn tussen de helft en drie vijfde van de hoogte is de geometrie waarvan elke specificatie hieronder een variant is.Doc 9303 vraagt ook om minstens 90 pixels tussen de pupilmiddens in het opgeslagen beeld, wat een uitsnede van 413 x 531 uit een moderne telefoonfoto ruim haalt.Verenigde StatenPaspoort, visum en green cardFoto online uploadenVierkant, en de enige vierkante pasfoto die breed in gebruik is: 2 x 2 inch, oftewel 51 x 51 mm.Het hoofd mag overal tussen 25 en 35 mm zitten, een veel ruimer venster dan de ICAO-regel, en de ooglijn wordt vanaf de onderrand gemeten in plaats van als verhouding.Het geüploade bestand moet ook vierkant zijn, tussen 600 en 1200 pixels per zijde, en 240 KB is het plafond dat het formulier afdwingt.Inschrijving voor de green-cardloterijUpload voor de Entrant Status CheckDezelfde foto als de paspoortregel hierboven, maar het inschrijfformulier neemt één maat en maar één: precies 600 x 600 pixels, hoogstens 240 KB.Een inschrijving die om de foto wordt afgewezen, wordt niet verbeterd maar weggegooid — daarom is het bij deze de moeite waard om precies te zijn en niet ongeveer.Verenigd KoninkrijkPaspoortDigitale foto voor een online aanvraagHet hoofd wordt van kin tot kruin gemeten en moet tussen 29 en 34 mm liggen — duidelijk korter dan de ICAO-band, dus een foto die op de ICAO-regel is uitgesneden kan hier worden geweigerd omdat het hoofd te groot is.De digitale regel heeft een vloer én een plafond: onder 50 KB wordt de upload geweigerd omdat hij te klein is.SchengengebiedVisumaanvraagHet gemeenschappelijke visumformaat dat elk Schengenconsulaat gebruikt: 35 x 45 mm met het gezicht dat 70 tot 80 procent van de hoogte vult, oftewel 32 tot 36 mm.Consulaten verschillen in wat ze als achtergrond accepteren. Effen lichtgrijs wijst niemand af; een witte muur met een schaduw erop wijzen de meesten af.DuitslandPaspoort en identiteitskaartDe pasfotosjabloon van de Bundesdruckerei vraagt om een gezichtshoogte van 32 tot 36 mm in een kader van 35 x 45 mm, met de ogen in het bovenste derde deel.Sinds 2025 wordt de foto normaal bij het uitgevende loket gemaakt of er elektronisch door een fotograaf naartoe gestuurd, dus een afdruk die hier gemaakt wordt is voor de aanvragen die er nog een aannemen.CanadaPaspoortDe vreemde eend qua vorm: 50 x 70 mm, in verhouding hoger en smaller dan al het andere hier, dus een uitsnede die voor een ander land is gemaakt past er niet in.De gezichtshoogte is 31 tot 36 mm, van kin tot kruin gemeten. Canada publiceert geen ooglijn, dus de band die hier staat volgt uit een hoofd dat midden in het kader zit; neem het als richtlijn en niet als regel.De fotograaf moet de datum en de naam van de studio op de achterkant drukken, en dat kan geen enkel gereedschap voor je doen.AustraliëPaspoortEen effen, lichte achtergrond met het gezicht 32 tot 36 mm van kin tot kruin in een afdruk van 35 x 45 mm.Bij een papieren aanvraag worden twee afdrukken gevraagd, en daar is de velexport hieronder precies voor.IndiaPaspoortPassport Seva vraagt om een foto van 2 x 2 inch op een effen witte achtergrond, hetzelfde kader dat de Verenigde Staten gebruiken.Een afdruk van 35 x 45 mm is wat de meeste Indiase formulieren met „pasfotoformaat” bedoelen, en het staat als aparte regel in deze lijst — de twee zijn niet uitwisselbaar.Afdruk op pasfotoformaat voor een formulierWat een bank, een hogeschool of een overheidsformulier bedoelt als het om een op te plakken „pasfoto” vraagt: 35 x 45 mm, witte achtergrond, hoofd en schouders.Geen instantie publiceert hier een band voor de hoofdhoogte, dus die van de ICAO wordt toegepast en als richtlijn getoond. Niemand meet deze foto’s met een liniaal na.Foto voor een SSC-/UPSC-onlineformulierFoto voor de online aanvraagWat deze formulieren werkelijk afdwingen zijn drie getallen: 200 x 230 pixels, JPEG, en tussen 20 en 50 KB. Beide uiteinden worden gecontroleerd — een bestand van 12 KB wordt geweigerd omdat het te klein is, net zoals een van 60 KB wordt geweigerd omdat het te groot is.De uitsnede met hoofd en schouders is in woorden beschreven in plaats van opgemeten, dus de banden hier zijn richtlijnen, afgeleid van de voorbeeldbeelden op de formulieren.Er is geen afdrukformaat, want er valt niets af te drukken: dit is een bestand voor een webformulier. De velexport staat er voor uit.Handtekening voor een SSC-/UPSC-onlineformulierHandtekening voor de online aanvraagHelemaal geen portret: een handtekening met zwarte of donkerblauwe inkt op wit papier, gefotografeerd of gescand, uitgesneden op 140 x 60 pixels en opgeslagen als JPEG tussen 10 en 20 KB.De overlay met hoofd en ogen staat hierbij uit. Wat in plaats daarvan wordt gecontroleerd is dat het papier licht is, dat er inkt op staat en dat die inkt niet zo bleek is dat het formulier hem als leeg leest.Een uitsnede van 140 x 60 van een handtekening is 8400 pixels. De 10 KB halen is het lastige deel van deze specificatie, niet onder de 20 blijven — zie de opvulnotitie op de pagina.ChinaPaspoort en visumUpload voor de online visumaanvraagEen kader van 33 x 48 mm, smaller dan de 35 x 45 die bijna overal elders wordt gebruikt, met het hoofd 28 tot 33 mm van kin tot kruin.De upload heeft een vloer én een plafond — 40 KB tot 120 KB bij precies 354 x 472 pixels, wat datzelfde kader bij 272 dpi is.JapanPaspoortEen afdruk van 35 x 45 mm met het gezicht 34 mm van kin tot kruin, 2 mm meer of minder, en 4 tot 6 mm vrije ruimte boven het hoofd.De ruimte boven het hoofd staat hier als eigen regel in plaats van uit de hoofdhoogte te volgen, en daarom is de getoonde oogband een richtlijn.Ergens andersZelf de getallen invullenWat het formulier vraagtBij deze is elk getal aanpasbaar. Vul in wat het formulier voor je zegt, en de overlay, de afdruk en het zoeken naar de bestandsgrootte volgen allemaal.Hij begint op de ICAO-geometrie, omdat een land dat niet in de lijst hierboven staat die veel waarschijnlijker gebruikt dan wat dan ook.Gangbare praktijkDe 35 x 45 mm-standaard van de kantoorboekhandel, geen gepubliceerde regelJijWat je toegestuurd hebt gekregengeen afdrukformaat — deze regel is voor een webformulier{width} x {height} mm bij {dpi} dpi{width} x {height} pixelsprecies {width} x {height} px{width} x {height} px, tot {maxWidth} x {maxHeight}minstens {width} x {height} px{min} tot {max}tot {max}vanaf {min}geen regel voor de bestandsgrootte gegevenUploadregelgeen gepubliceerd — dit is een afdruk{pixels}, JPEG, {size}{n} bytes{n} KB{n} MBOvergenomen van {authority} — {document}. Gecontroleerd op {checked}. Regels veranderen; de cijfers hierboven zijn wat je moet naslaan bij het formulier dat voor je ligt.Je eigen cijfers. Hier wordt niets tegen iets anders gecontroleerd.Een handtekening wordt anders gecontroleerd: dat het papier licht is, dat er inkt op staat en dat de uitsnede geen liniaal of paginarand heeft meegenomen.Gelezen uit een strook langs de bovenkant van de uitsnede en langs beide zijden naar beneden, boven de schouders — de delen van het kader waar niets dan achtergrond hoort te zijn. Gemeten in CIE Lab in plaats van in RGB, omdat twee grijzen die veertig RGB-eenheden uit elkaar liggen niet te onderscheiden zijn en veertig eenheden blauw een andere kleur is.{floor} dpi is de vloer van deze regel. Bij {chosen} dpi komt het bestand uit op {size}, en de JPEG draagt die resolutie in zijn kop, zodat een drukkerij hem op de juiste maat afdrukt in plaats van te gokken.{sheet}, met snijtekens in de tussenruimtes en niets over een foto heen gedrukt.Afdruk 4 x 6 inch (10 x 15 cm)Afdruk 5 x 7 inch (13 x 18 cm)A4-vel (210 x 297 mm)US Letter (8,5 x 11 inch)deze foto past helemaal niet op dit papier.1 afdruk, {columns} naast elkaar en {rows} onder elkaar{n} afdrukken, {columns} naast elkaar en {rows} onder elkaardat is geen afbeelding die deze browser kan openen.{name} — {width} x {height} pixels{name}: {why}De regel wilde meer beeld dan er is: {list}. Het kader is in plaats daarvan binnen de foto gehouden, en daarom zijn de cijfers hieronder misschien niet allemaal groen. Een foto die een stap verder naar achteren is genomen, is de oplossing.{value} px aan de {side}bovenkantonderkantlinkerkantrechterkant{a}, {b}Kruinhet allerhoogste punt van het hoofd, haar meegerekendKinde onderkant van de kinLinkeroogde pupil, links zoals jij ernaar kijktRechteroogde andere pupil{label}: {hint}. De pijltjestoetsen verplaatsen hem; houd Shift ingedrukt voor tien pixels tegelijk.Uitsnedegebied. De pijltjestoetsen verplaatsen het, Alt met de pijltjestoetsen wijzigt de maat, en met Shift ingedrukt is elke stap tien pixels. De vorm ligt vast in de specificatie en kan niet worden veranderd.de afdruk van {width} x {height} mm schrijvenhet vel opmakenkleiner maken naar: {label}klaarDe afdruk — {width} x {height} mm{width} x {height} pixels, {size}, met {dpi} dpi in het bestand zelf vermeld zodat een drukkerij het op de juiste maat weergeeft.Het vel — {paper}{sheet}, {size}, met {dpi} dpi vermeld. Druk het op 100 procent af — „passend maken” is wat een vel op de verkeerde maat laat uitkomen.De upload — {width} x {height}{size} na 1 keer coderen. {how}{size} na {n} keer coderen. {how}Er ging iets mis bij het maken van de bestanden: {why}deze browser kon het beeld niet decoderen.deze browser wilde geen JPEG schrijven.opgegeven na te veel pogingen.op een specificatie zonder afdrukformaat en zonder pixelformaat valt niets uit te snijden.Zelfs op de laagste kwaliteit die nog de moeite waard is, komt dit uit op {size}, en dat is over de limiet. Het beeld bevat meer detail dan het formulier voorziet.Geschreven op kwaliteit {quality}, wat {size} is — binnen de band die het formulier accepteert.Het beeld codeert naar {size} met de kwaliteitsknop helemaal open, en dat blijft nog steeds onder de vloer van {floor} waar het formulier op staat. Er is {added} aan JPEG-commentaar toegevoegd om die te halen; het beeld zelf is onaangeroerd.AfdrukformaatHoofd, kin tot kruinOoglijn, vanaf onderenAchtergrond{min} tot {max}{range} ({min}–{max} mm){band} (richtlijn){percent} ({mm} mm)De hoofdhoogte is {measured}. De regel vraagt {wanted}.De hoofdhoogte is {measured}, en dat is te klein. De regel vraagt {wanted}. Maak het kader kleiner.De hoofdhoogte is {measured}, en dat is te groot. De regel vraagt {wanted}. Maak het kader groter.De ooglijn zit op {measured}. De regel vraagt {wanted}.De ooglijn zit op {measured}, en dat is te laag in het beeld. De regel vraagt {wanted}. Schuif het kader omlaag.De ooglijn zit op {measured}, en dat is te hoog in het beeld. De regel vraagt {wanted}. Schuif het kader omhoog.De ooglijn ligt waterpas.Het hoofd helt {degrees} graden naar links, en dat blijft binnen de paar graden die een beoordelaar niet opmerkt.Het hoofd helt {degrees} graden naar rechts, en dat blijft binnen de paar graden die een beoordelaar niet opmerkt.Het hoofd helt {degrees} graden naar links, en dat valt op. Maak de foto opnieuw met de camera recht, of zet het beeld eerst recht.Het hoofd helt {degrees} graden naar rechts, en dat valt op. Maak de foto opnieuw met de camera recht, of zet het beeld eerst recht.Het gezicht staat midden in beeld.Het gezicht zit {size} van de breedte links van het midden. Trek het kader de andere kant op, of druk nog eens op ‘Passend maken’.Het gezicht zit {size} van de breedte rechts van het midden. Trek het kader de andere kant op, of druk nog eens op ‘Passend maken’.De uitsnede is {have} pixels en de uitvoer {need}, dus er hoeft niets verzonnen te worden.De uitsnede is maar {have} pixels en de uitvoer {need}. Hij wordt licht vergroot, wat een beetje scherpte kost en verder niets.De uitsnede is maar {have} pixels en de uitvoer {need}. Dat scheelt een heel eind: het resultaat wordt zacht, en op papier ziet het eruit als een schermafdruk. Alleen een foto van dichterbij, of met een hogere resolutie, helpt.De maatvoering haalt de regel nog niet. Je kunt de bestanden toch opslaan — niets hier weigert je je eigen foto — maar de cijfers hierboven zijn waar het formulier op meet.De maatvoering haalt de regel. De achtergrond niet, en dat is de meest voorkomende reden dat een foto terugkomt.De maatvoering haalt de regel en de achtergrond komt door.Effen witeffen witEen witte muur fotografeert lichtgrijs. Wat gevraagd wordt is een effen, gelijkmatig belichte achtergrond zonder schaduw, geen verfkleur.Wit of gebroken witwit of gebroken witAllebei goed, wat in de praktijk alles betekent wat effen en licht is: geen patroon, geen meubels en geen schaduw achter het hoofd.Effen lichtgrijseffen lichtgrijsLichtgrijs heeft de voorkeur van de ICAO omdat het een licht gezicht van de achtergrond scheidt, en donker haar ook. Zuiver wit doet geen van beide.Lichtgrijs of crèmelichtgrijs of crèmeZo verwoordt het Verenigd Koninkrijk het. Crème leest als een warm gebroken wit; het gaat de regel erom dat de achtergrond effen en gelijkmatig is, niet dat hij één bepaalde tint heeft.De achtergrond meet {hex}, en dat is ver van {wanted}.De achtergrond meet {hex} — dicht bij {wanted}, maar net niet.De achtergrond meet {hex}, en dat gaat door voor {wanted}.Het is niet één effen kleur — er zit een schaduw, een patroon of een voorwerp achter je.Licht ongelijk. Een halve meter verder van de muur gaan staan is meestal de hele oplossing.Gelijkmatig belicht, zonder schaduw achter het hoofd.De ene kant van de achtergrond is een stuk donkerder dan de andere, wat leest als zijlicht.De ene kant is iets donkerder dan de andere.{colour} Deze tool vervangt geen achtergrond: iemand uit een foto knippen vraagt een segmentatiemodel, en een slecht model vreet het haar op van precies die mensen wier foto’s toch al het vaakst worden afgekeurd. Een halve meter verder van de muur gaan staan lost er meer op dan welk filter ook.Hier verandert niets aan je handtekening. Ze wordt gemeten en beschreven, en de uitsnede is van jou.Bijna geen inkt in de uitsnede. Of het kader staat naast de handtekening, of de pen was te licht om te fotograferen.Heel veel donkere pixels — kijk of de uitsnede geen lijntje of de rand van het blad heeft meegenomen.Inkt bedekt {coverage}% van de uitsnede, en dat leest als een handtekening.Het papier komt grijs uit in plaats van wit. Meer licht op het blad, of een scan in plaats van een foto.Het papier is wat dof. De meeste formulieren willen een schoon wit blad achter de handtekening.Het papier is schoon en wit.Alle vier zijn op de foto gemeten: de kruin aan de omtrek van je hoofd, de pupillen aan hoe donker ze zijn, de kin waar de kaak in de nek overgaat. Controleer ze toch, en sleep wat verkeerd is geland: de uitsnede wordt genomen waar ze uiteindelijk staan.Gezet, maar niet alles is gemeten. Controleer alle vier de stippen voordat je het kader aanpast.Op deze foto viel niets te meten. De stippen staan in plaats daarvan op hun startpositie — sleep ze naar de kruin, de kin en elke pupil.De vier stippen zijn van jou en er beweegt niets aan. Sleep elke stip naar de kruin, de kin en een pupil.Je hebt een stip verplaatst, dus alle vier zijn nu van jou. „Zoek ze voor me” meet de foto opnieuw.De muur achter je is niet vlak genoeg om de omtrek van een hoofd tegen af te steken.Het hoofd loopt bovenaan de foto uit beeld, dus er was geen kruin te vinden.De ogen waren niet te onderscheiden, dus zijn ze allebei gezet waar een hoofd van dit formaat ze meestal heeft.De kin komt uit de verhoudingen van een hoofd en niet uit de omtrek van dit hoofd.Zoek het gezicht opnieuwStippen terugzettenJe foto's zijn nergens heen gegaan. {total} bestanden geladen, allemaal van deze site zelf. {platform}Iets heeft {hosts} benaderd, en dat doet dit gereedschap nooit. Dat is het waard om na te kijken. {platform}De eigen scripts van de site voor advertenties, meting en de donatieknop kwamen van {hosts} host; geen daarvan heeft een foto of een byte ervan gekregen.De eigen scripts van de site voor advertenties, meting en de donatieknop kwamen van {hosts} hosts; geen daarvan heeft een foto of een byte ervan gekregen.
Heeft dit geholpen?
Wat ging er mis?
Bedankt — daar hebben we wat aan.
Alleen je antwoord wordt verstuurd, en alleen als je op een knop drukt. Nooit je bestand, niet de naam ervan, en niets erover.
# Pasfoto maken — paspoort- en visumfoto's op maat
Kies het land. Hij past die regel toe, precies.
> Maak een paspoort- of visumfoto volgens de gepubliceerde regel van je land: exacte millimeters en dpi, een meelopende hulplijn voor hoofdhoogte en ooglijn, een achtergrondcontrole, een printklaar vel van 10x15 en een bestand dat binnen de KB-grens van het portaal past. Er wordt niets geüpload.
Deze pagina is een interactief hulpmiddel dat volledig in je browser draait, op https://abox.tools/nl/pasfoto-maken/ — niets van wat je het geeft wordt geüpload. Hieronder staat alles wat de pagina er in woorden over zegt; om het te gebruiken, open je het adres.
## Je foto's worden **nooit geüpload**. Er is geen server.
Het uitsnijden, het meten, het uitlezen van de achtergrond en het printen gebeuren allemaal in je eigen browser, op je eigen hardware, met de JPEG-encoder die er al in zit. Deze tool heeft geen enkele netwerkfunctie, niets op te halen en niets te versturen, en al was die er wel, dan zit er aan de andere kant van deze pagina nog steeds geen server waar een foto van je gezicht naartoe kan.
- ✗ Geen upload
- ✗ Geen account
- ✗ Geen watermerk
- ✓ Werkt offline
- ✓ Open source
## Zo maak je een pasfoto die niet teruggestuurd wordt
1. **Kies de foto.** Een telefoonfoto tegen een effen muur, bij daglicht, van zo'n anderhalve meter afstand. De browser leest hem rechtstreeks van je schijf, en er gaat ondertussen niets ergens heen.
2. **Kies het land en het document.** Het paneel laat dan het printformaat, de hoofdhoogteband, de ooglijn, de achtergrondkleur en de uploadgrenzen van die regel zien, samen met de instantie waar elk cijfer vandaan komt en de datum waarop het gelezen is. Niets op die lijst is gegokt, en alles wat je toegestuurd hebt gekregen en er niet op staat vul je in onder “Ergens anders”.
3. **Controleer de vier stippen op je gezicht.** Kruin, kin en elke pupil — die vier punten zijn het hele verhaal van wat de regel meet. Ze worden gezet door de foto zelf op te meten, en de regel eronder zegt welke dat lukte en welke afgeleid moesten worden. Sleep wat verkeerd is geland, of zet hem op *Ik zet ze zelf* en doe alle vier met de hand. Druk dan op *Pas het kader aan* en de uitsnede landt waar dat land hem hebben wil.
4. **Lees de vier controles, en de achtergrond.** Hoofdhoogte, ooglijn, centrering en scheefstand, elk gemeten aan het kader zoals het nu staat en elk met erbij welke kant je op moet slepen als het buiten de norm valt. De achtergrond wordt uit de bovenkant en de zijkanten van de uitsnede gelezen en vergeleken met de kleur die de regel vraagt; de ongelijkmatigheid, waar foto's werkelijk op worden afgekeurd, wordt los van de kleur gemeten.
5. **Neem de drie bestanden mee.** De print, op de exacte millimeter, met de resolutie in het bestand geschreven zodat een winkel hem op het juiste formaat afdrukt. Het vel, met zo veel kopieën als er op een 10 × 15 passen en snijtekens in de tussenruimtes. En de upload, op het pixelformaat dat het portaal eist en binnen de KB-band die het aan beide kanten afdwingt.
## De uitgebreide versie
[Een pasfoto maken die niet teruggestuurd wordt](https://abox.tools/nl/gidsen/zelf-een-pasfoto-maken/): Waar een pasfoto werkelijk op gemeten wordt — hoofdhoogte, ooglijn, achtergrond —, welk land welke getallen wil, en hoe je de pixel- en KB-grenzen van een online formulier haalt.
## Ook in de gereedschapskist
- [Afbeeldingen stacken](https://abox.tools/nl/afbeeldingen-stacken/): Twintig frames tot één, zonder twintig uploads en zonder RAW-converter.
- [Afbeelding onleesbaar maken](https://abox.tools/nl/afbeelding-onleesbaar-maken/): Wat je afdekt wordt uit het bestand gewist, niet erin verstopt.
- [EXIF-lezer & -wisser](https://abox.tools/nl/exif-gegevens-verwijderen/): Zie wat een foto over je vertelt. Haal het er daarna uit.
- [DICOM-viewer](https://abox.tools/nl/dicom-viewer/): CT, MRI, röntgen en echo, met het venster, de header en de metingen.
## Vragen
### Wordt mijn foto ergens naartoe geüpload?
Nee. Het beeld wordt gedecodeerd, uitgesneden, gemeten en weggeschreven door je eigen browser op je eigen hardware, met de JPEG-encoder die de browser al meelevert. Deze tool heeft geen enkele netwerkfunctie: hij haalt nooit iets op en verstuurt nooit iets, en de `Content-Security-Policy` van de pagina noemt elk adres dat ze mag benaderen, waarvan er geen enkele van ons is. Dat is hier meer waard dan bij de meeste tools: het bestand is een foto van je gezicht.
### Welke landen zitten erin?
De tot nu toe overgenomen specificaties zijn de ICAO-norm zelf, de Verenigde Staten (paspoort en de inschrijving voor de visumloterij, die verschillende uploadregels hebben), het Verenigd Koninkrijk, het Schengenvisum, Duitsland, Canada, Australië, India (paspoort, de afdruk van 35 × 45 mm en de formulierfoto en handtekening voor SSC en UPSC), China en Japan. Elke ingang noemt de instantie waar hij vandaan komt en de datum waarop hij gelezen is. Al het andere vul je in onder “Ergens anders”, waar elk cijfer van jou is; en omdat het grootste deel van de wereld op de ICAO-geometrie uitgeeft, begint die ingang daar ook mee.
### Hoe vindt het de kruin, de kin en de ogen zonder gezichtsmodel?
Door iets aan te nemen wat een algemene gezichtsdetector niet mag aannemen en deze tool wel: al deze regels eisen hetzelfde tafereel — één persoon, recht in de camera, tegen een egale, gelijkmatig verlichte muur. De kleur van de muur wordt dus van de rand van de foto gelezen, alles wat die kleur niet is, is de persoon, en het hoogste daarvan is de kruin, haar inbegrepen. De pupillen worden gezocht als het beste paar plekken dat donkerder is dan zijn eigen omgeving, op gelijke hoogte en aan weerszijden van het midden van het hoofd — een vergelijking die plaatselijk is, dus niets erin hangt af van welke kleur een gezicht heeft. De kin is de enige die zo niet te vinden is, want een kaak tegen een hals is een zachte rand zonder kleurverschil; die wordt afgeleid uit de pupillen, die net onder het midden van een hoofd zitten zodra het haar erboven wordt meegeteld, en daarna tegen de omtrek gehouden. Het is allemaal rekenwerk, in `src/detect.js`: geen gewichten, geen inferentie-omgeving, niets opgehaald, en hetzelfde rekenwerk voor elk gezicht. Dat laatste is wat telt, want een meegeleverde detector heeft het ongelijk mis — slechter bij sommige gezichten dan bij andere — en de mensen van wie de foto’s toch al het vaakst worden afgekeurd zijn juist degenen die hij zou laten vallen.
### Hoeveel moet ik vertrouwen op de stippen die het zet?
Genoeg om ervan uit te gaan, niet genoeg om er niet naar te kijken. Bij elk van de vier hoort een foto waarop het misgaat: een muur met een motief of een boekenkast laat geen omtrek over om een hoofd tegen af te steken, een hoofd dat bovenaan is afgesneden heeft helemaal geen kruin in de foto, en een bril, een dikke pony of dichte ogen kunnen de pupillen op het verkeerde kenmerk zetten. Daarom zegt de tool hardop welke van de vier het gemeten heeft en welke het moest afleiden, weigert het botweg bij een foto zonder egale achtergrond in plaats van een antwoord te verzinnen, en laat het elke stip versleepbaar. De uitsnede wordt genomen waar de stippen uiteindelijk staan, nooit waar ze begonnen. Wil je alle vier liever zelf zetten, dan zegt de schakelaar boven de foto *Ik zet ze zelf*, en een stip met de hand verplaatsen zet hem daar vanzelf op: vanaf dat moment zijn ze van jou en beweegt er niets meer aan.
### Wat is die hoofdhoogteregel, en waarom haalt de mijne die nooit?
Al deze specificaties zeggen hoeveel van het beeld het hoofd moet vullen, gemeten van de onderkant van de kin tot de bovenkant van het hoofd, haar inbegrepen; meestal 70 tot 80 procent, wat bij een foto van 45 mm neerkomt op 31,5 tot 36 mm. De gebruikelijke reden dat het misgaat is een selfie: een armlengte is ongeveer 60 cm, wat het gezicht vervormt en het hoofd te groot in beeld zet. De tweede gebruikelijke reden is de kruin: dat is de bovenkant van het haar, niet de haargrens, en wie de haargrens markeert krijgt elk hoofd te klein.
### Waarom moet het bestand minstens 20 KB zijn, en hoe kan het opgevuld worden?
Indiase examenportalen, het Chinese visumformulier en de upload voor het Britse paspoort noemen naast een maximum ook een minimum bestandsgrootte, omdat een bestand daaronder meestal een miniatuur is die iemand per ongeluk uploadde. Een foto van 200 × 230 is 46.000 pixels, en op de beste kwaliteit die een browser wegschrijft kan hij nog steeds op 15 KB uitkomen, zonder mogelijkheid om hem groter te maken door minder te comprimeren. Dus voegt de tool een JPEG-commentaarsegment vol spaties toe. Dat hoort bij de JPEG-standaard, elke decoder slaat het over, en het beeld is bit voor bit hetzelfde beeld: alleen het bestand is langer. De opvulling zegt precies dat, in het Engels, binnenin het bestand.
### Controleert hij de achtergrond, en kan hij er een vervangen?
Hij controleert en vervangt niet. De kleur wordt gelezen uit een strook over de bovenkant van de uitsnede en langs beide zijkanten, boven de schouders, en vergeleken met de kleur van de regel in CIE Lab in plaats van in RGB: twee grijzen die veertig RGB-eenheden uit elkaar liggen zijn niet te onderscheiden, terwijl veertig eenheden blauw een andere kleur is. Ongelijkmatigheid wordt apart gemeten, want een schaduw op een witte muur is waar foto's werkelijk op worden afgekeurd, en dat is geen kleurprobleem. Een achtergrond vervangen betekent iemand uit een plaatje knippen, en dat is een segmentatiemodel; een slecht model eet haar op. Een halve meter verder van de muur gaan staan lost hier meer van op dan welk filter ook.
### Waar is dat vel van 10 x 15 voor?
Een fotohokje rekent een paar euro voor zes foto's. Een fotobalie print een 10 × 15 voor centen, en dat kan er eentje. Dus legt de tool zo veel kopieën van je foto op het papier als erop passen — acht, voor een 35 × 45 op een 10 × 15 — met snijtekens in de tussenruimtes en niets over een plaatje heen gedrukt. Er wordt niets geschaald: elke kopie heeft precies het formaat dat de regel vraagt, want een vel dat ze twee procent kleiner maakte om er nog eentje bij te proppen zou acht foto's van het verkeerde formaat opleveren. Print hem op 100 procent; “passend maken op pagina” is wat een vel verkeerd laat uitkomen.
### Waarom maakt de dpi uit als de pixels hetzelfde zijn?
Omdat een JPEG kan zeggen welk formaat hij is, en zegt hij het niet, dan gokt wat hem afdrukt. De resolutie staat in de JFIF-kop, en een browsercanvas schrijft die kop met het eenhedenveld op “dit is een beeldverhouding, geen resolutie”. Deze tool herschrijft die paar bytes zodat het bestand 300 dpi meldt, en dat is wat 413 × 531 pixels tot een foto van 35 × 45 mm maakt in plaats van een plaatje van geen bepaald formaat. Er wordt daarvoor niets gedecodeerd en er gaat geen kwaliteit verloren.
### Kan hij ook het handtekeningbestand doen?
Ja — de SSC- en UPSC-formulieren willen er een van 140 × 60 pixels tussen 10 en 20 KB, en die staat als eigen specificatie op de lijst. De gezichtshulplijnen gaan daarvoor uit, want een handtekening heeft geen ooglijn; wat er in plaats daarvan gecontroleerd wordt is dat het papier licht is, dat er inkt op staat, en dat de uitsnede geen liniaal of paginarand heeft meegepakt. De 10 KB halen is het lastige deel van die regel, niet onder de 20 blijven.
### Garandeert dit dat mijn aanvraag geaccepteerd wordt?
Nee, en geen enkele tool kan dat eerlijk beloven. Wat hij doet, is de gepubliceerde cijfers precies toepassen en je elke meting laten zien die hij gedaan heeft, zodat de dingen die een formulier automatisch meet — pixelformaat, bestandsgrootte, formaat — kloppen, en de dingen die een mens beoordeelt — hoofdhoogte, ooglijn, de achtergrond — met getallen erbij voor je neus staan. De regels veranderen bovendien: elke specificatie hier zegt van welke instantie hij komt en wanneer hij gelezen is, zodat je hem kunt toetsen aan het formulier dat je voor je hebt in plaats van op een tabel te vertrouwen.
### Is het gratis, en heb ik een account nodig?
Het is gratis, en er komt geen account, geen inlog, geen proefperiode en geen watermerk over je gezicht aan te pas. Er zit ook geen limiet op hoeveel foto's je maakt, omdat er geen server is die daarvoor betaalt. De site draait op advertenties, en die betalen hem; die advertenties krijgen niets over je foto mee.
### Werkt het offline?
Ja. Laad de pagina één keer, verbreek daarna je internetverbinding en hij werkt gewoon door — het regelboek is een bestand dat met de pagina meekomt, geen opzoeking. Dat is meteen de eenvoudigste manier om te bewijzen dat er niets geüpload wordt: een tool die je foto wegstuurde om hem te laten uitsnijden zou stoppen op het moment dat je de stekker eruit trok.
## Hoe je de privacybelofte controleert
- **Een foto van je gezicht verlaat dit apparaat nooit.** Dat weegt hier zwaarder dan bij de meeste tools: het bestand dat deze pagina in handen heeft is een beeld van je gezicht, en wat je ermee gaat doen noemt bovendien het land waarvan je het document aanvraagt. De `Content-Security-Policy` noemt elk adres dat deze pagina mag benaderen, en geen daarvan is van ons. Er is hier geen eindpunt waar je foto verzameld zou kunnen worden.
- **Niets hier haalt iets op.** Er staat nergens in `src/` een `fetch`, een `XMLHttpRequest` of een `sendBeacon`. Het regelboek is een tabel in `src/specs.js`, meegeleverd met de pagina en met haar in de cache gezet: er is geen landenlijst om op te zoeken en niets waartegen je foto op afstand gecontroleerd wordt.
- **Het gezicht wordt gevonden zonder gezichtsmodel.** Er zijn geen gewichten om te downloaden, geen inferentie-omgeving om ze in te draaien en niets dat wordt opgehaald: de kruin komt uit de omtrek van je hoofd tegen de muur erachter, de pupillen uit de plekken van het gezicht die donkerder zijn dan wat eromheen zit. Niets daarvan leest huidskleur, en dat is precies waarom het zo geschreven is — een model dat het mis heeft, heeft het ongelijk mis: slechter bij sommige gezichten dan bij andere. Het is een startpositie en geen oordeel: de pagina zegt welk van de vier punten ze niet kon meten, elke stip blijft versleepbaar, en met *Ik zet ze zelf* staat het helemaal uit.
- **Wat Google laadt, en wat het niet te zien krijgt.** De advertentie- en meetscripts komen van Google, de doneerknop van Buy Me a Coffee. Geen van alle krijgt iets over je foto, je gezicht of het land waarvan je de regel koos. Elke regel die een bestand leest, uitsnijdt, meet of schrijft, wordt vanaf deze herkomst geserveerd en staat in de repository.
- **Het werkt offline.** Verbreek de verbinding en de tool werkt onveranderd door, omdat er nooit een netwerkstap in zat. Eenvoudiger bewijs bestaat er niet.
**Controleer het zelf.** Je hoeft niets van het bovenstaande op ons woord aan te nemen. Een buildscript maakt deze pagina uit de sjablonen en de configuratie in de repository, en dat script kun je lezen en zelf draaien. Het resultaat staat vastgelegd op de branch `dist`, dus je kunt wat er geserveerd wordt vergelijken met wat een build van de bronnen oplevert: https://github.com/A-Box-of-Tools/website
De bestanden die je als eerste wilt lezen zijn `config/site.toml` voor de Content-Security-Policy, `src/specs.js` voor het regelboek — de gepubliceerde cijfers van elk land, met de instantie en de datum waarop elk cijfer gelezen is — `src/detect.js` voor hoe de vier punten gevonden worden — een omtrek en twee donkere plekken, zonder enig model —, `src/geometry.js` voor het rekenwerk dat vier gezette punten in een uitsnede verandert, en `src/jpeg.js` voor de twee wijzigingen aan de kop die de printresolutie in het bestand zetten en een te kleine upload optrekken naar de grootte waar een formulier op staat.
Zo maak je een pasfoto die niet teruggestuurd wordt
Kies de foto. Een telefoonfoto tegen een effen muur, bij daglicht, van zo'n anderhalve meter afstand. De browser leest hem rechtstreeks van je schijf, en er gaat ondertussen niets ergens heen.
Kies het land en het document. Het paneel laat dan het printformaat, de hoofdhoogteband, de ooglijn, de achtergrondkleur en de uploadgrenzen van die regel zien, samen met de instantie waar elk cijfer vandaan komt en de datum waarop het gelezen is. Niets op die lijst is gegokt, en alles wat je toegestuurd hebt gekregen en er niet op staat vul je in onder “Ergens anders”.
Controleer de vier stippen op je gezicht. Kruin, kin en elke pupil — die vier punten zijn het hele verhaal van wat de regel meet. Ze worden gezet door de foto zelf op te meten, en de regel eronder zegt welke dat lukte en welke afgeleid moesten worden. Sleep wat verkeerd is geland, of zet hem op Ik zet ze zelf en doe alle vier met de hand. Druk dan op Pas het kader aan en de uitsnede landt waar dat land hem hebben wil.
Lees de vier controles, en de achtergrond. Hoofdhoogte, ooglijn, centrering en scheefstand, elk gemeten aan het kader zoals het nu staat en elk met erbij welke kant je op moet slepen als het buiten de norm valt. De achtergrond wordt uit de bovenkant en de zijkanten van de uitsnede gelezen en vergeleken met de kleur die de regel vraagt; de ongelijkmatigheid, waar foto's werkelijk op worden afgekeurd, wordt los van de kleur gemeten.
Neem de drie bestanden mee. De print, op de exacte millimeter, met de resolutie in het bestand geschreven zodat een winkel hem op het juiste formaat afdrukt. Het vel, met zo veel kopieën als er op een 10 × 15 passen en snijtekens in de tussenruimtes. En de upload, op het pixelformaat dat het portaal eist en binnen de KB-band die het aan beide kanten afdwingt.
De uitgebreide versie
Een pasfoto maken die niet teruggestuurd wordtWaar een pasfoto werkelijk op gemeten wordt — hoofdhoogte, ooglijn, achtergrond —, welk land welke getallen wil, en hoe je de pixel- en KB-grenzen van een online formulier haalt.
Nee. Het beeld wordt gedecodeerd, uitgesneden, gemeten en weggeschreven door je eigen browser op je eigen hardware, met de JPEG-encoder die de browser al meelevert. Deze tool heeft geen enkele netwerkfunctie: hij haalt nooit iets op en verstuurt nooit iets, en de Content-Security-Policy van de pagina noemt elk adres dat ze mag benaderen, waarvan er geen enkele van ons is. Dat is hier meer waard dan bij de meeste tools: het bestand is een foto van je gezicht.
Welke landen zitten erin?
De tot nu toe overgenomen specificaties zijn de ICAO-norm zelf, de Verenigde Staten (paspoort en de inschrijving voor de visumloterij, die verschillende uploadregels hebben), het Verenigd Koninkrijk, het Schengenvisum, Duitsland, Canada, Australië, India (paspoort, de afdruk van 35 × 45 mm en de formulierfoto en handtekening voor SSC en UPSC), China en Japan. Elke ingang noemt de instantie waar hij vandaan komt en de datum waarop hij gelezen is. Al het andere vul je in onder “Ergens anders”, waar elk cijfer van jou is; en omdat het grootste deel van de wereld op de ICAO-geometrie uitgeeft, begint die ingang daar ook mee.
Hoe vindt het de kruin, de kin en de ogen zonder gezichtsmodel?
Door iets aan te nemen wat een algemene gezichtsdetector niet mag aannemen en deze tool wel: al deze regels eisen hetzelfde tafereel — één persoon, recht in de camera, tegen een egale, gelijkmatig verlichte muur. De kleur van de muur wordt dus van de rand van de foto gelezen, alles wat die kleur niet is, is de persoon, en het hoogste daarvan is de kruin, haar inbegrepen. De pupillen worden gezocht als het beste paar plekken dat donkerder is dan zijn eigen omgeving, op gelijke hoogte en aan weerszijden van het midden van het hoofd — een vergelijking die plaatselijk is, dus niets erin hangt af van welke kleur een gezicht heeft. De kin is de enige die zo niet te vinden is, want een kaak tegen een hals is een zachte rand zonder kleurverschil; die wordt afgeleid uit de pupillen, die net onder het midden van een hoofd zitten zodra het haar erboven wordt meegeteld, en daarna tegen de omtrek gehouden. Het is allemaal rekenwerk, in src/detect.js: geen gewichten, geen inferentie-omgeving, niets opgehaald, en hetzelfde rekenwerk voor elk gezicht. Dat laatste is wat telt, want een meegeleverde detector heeft het ongelijk mis — slechter bij sommige gezichten dan bij andere — en de mensen van wie de foto’s toch al het vaakst worden afgekeurd zijn juist degenen die hij zou laten vallen.
Hoeveel moet ik vertrouwen op de stippen die het zet?
Genoeg om ervan uit te gaan, niet genoeg om er niet naar te kijken. Bij elk van de vier hoort een foto waarop het misgaat: een muur met een motief of een boekenkast laat geen omtrek over om een hoofd tegen af te steken, een hoofd dat bovenaan is afgesneden heeft helemaal geen kruin in de foto, en een bril, een dikke pony of dichte ogen kunnen de pupillen op het verkeerde kenmerk zetten. Daarom zegt de tool hardop welke van de vier het gemeten heeft en welke het moest afleiden, weigert het botweg bij een foto zonder egale achtergrond in plaats van een antwoord te verzinnen, en laat het elke stip versleepbaar. De uitsnede wordt genomen waar de stippen uiteindelijk staan, nooit waar ze begonnen. Wil je alle vier liever zelf zetten, dan zegt de schakelaar boven de foto Ik zet ze zelf, en een stip met de hand verplaatsen zet hem daar vanzelf op: vanaf dat moment zijn ze van jou en beweegt er niets meer aan.
Wat is die hoofdhoogteregel, en waarom haalt de mijne die nooit?
Al deze specificaties zeggen hoeveel van het beeld het hoofd moet vullen, gemeten van de onderkant van de kin tot de bovenkant van het hoofd, haar inbegrepen; meestal 70 tot 80 procent, wat bij een foto van 45 mm neerkomt op 31,5 tot 36 mm. De gebruikelijke reden dat het misgaat is een selfie: een armlengte is ongeveer 60 cm, wat het gezicht vervormt en het hoofd te groot in beeld zet. De tweede gebruikelijke reden is de kruin: dat is de bovenkant van het haar, niet de haargrens, en wie de haargrens markeert krijgt elk hoofd te klein.
Waarom moet het bestand minstens 20 KB zijn, en hoe kan het opgevuld worden?
Indiase examenportalen, het Chinese visumformulier en de upload voor het Britse paspoort noemen naast een maximum ook een minimum bestandsgrootte, omdat een bestand daaronder meestal een miniatuur is die iemand per ongeluk uploadde. Een foto van 200 × 230 is 46.000 pixels, en op de beste kwaliteit die een browser wegschrijft kan hij nog steeds op 15 KB uitkomen, zonder mogelijkheid om hem groter te maken door minder te comprimeren. Dus voegt de tool een JPEG-commentaarsegment vol spaties toe. Dat hoort bij de JPEG-standaard, elke decoder slaat het over, en het beeld is bit voor bit hetzelfde beeld: alleen het bestand is langer. De opvulling zegt precies dat, in het Engels, binnenin het bestand.
Controleert hij de achtergrond, en kan hij er een vervangen?
Hij controleert en vervangt niet. De kleur wordt gelezen uit een strook over de bovenkant van de uitsnede en langs beide zijkanten, boven de schouders, en vergeleken met de kleur van de regel in CIE Lab in plaats van in RGB: twee grijzen die veertig RGB-eenheden uit elkaar liggen zijn niet te onderscheiden, terwijl veertig eenheden blauw een andere kleur is. Ongelijkmatigheid wordt apart gemeten, want een schaduw op een witte muur is waar foto's werkelijk op worden afgekeurd, en dat is geen kleurprobleem. Een achtergrond vervangen betekent iemand uit een plaatje knippen, en dat is een segmentatiemodel; een slecht model eet haar op. Een halve meter verder van de muur gaan staan lost hier meer van op dan welk filter ook.
Waar is dat vel van 10 x 15 voor?
Een fotohokje rekent een paar euro voor zes foto's. Een fotobalie print een 10 × 15 voor centen, en dat kan er eentje. Dus legt de tool zo veel kopieën van je foto op het papier als erop passen — acht, voor een 35 × 45 op een 10 × 15 — met snijtekens in de tussenruimtes en niets over een plaatje heen gedrukt. Er wordt niets geschaald: elke kopie heeft precies het formaat dat de regel vraagt, want een vel dat ze twee procent kleiner maakte om er nog eentje bij te proppen zou acht foto's van het verkeerde formaat opleveren. Print hem op 100 procent; “passend maken op pagina” is wat een vel verkeerd laat uitkomen.
Waarom maakt de dpi uit als de pixels hetzelfde zijn?
Omdat een JPEG kan zeggen welk formaat hij is, en zegt hij het niet, dan gokt wat hem afdrukt. De resolutie staat in de JFIF-kop, en een browsercanvas schrijft die kop met het eenhedenveld op “dit is een beeldverhouding, geen resolutie”. Deze tool herschrijft die paar bytes zodat het bestand 300 dpi meldt, en dat is wat 413 × 531 pixels tot een foto van 35 × 45 mm maakt in plaats van een plaatje van geen bepaald formaat. Er wordt daarvoor niets gedecodeerd en er gaat geen kwaliteit verloren.
Kan hij ook het handtekeningbestand doen?
Ja — de SSC- en UPSC-formulieren willen er een van 140 × 60 pixels tussen 10 en 20 KB, en die staat als eigen specificatie op de lijst. De gezichtshulplijnen gaan daarvoor uit, want een handtekening heeft geen ooglijn; wat er in plaats daarvan gecontroleerd wordt is dat het papier licht is, dat er inkt op staat, en dat de uitsnede geen liniaal of paginarand heeft meegepakt. De 10 KB halen is het lastige deel van die regel, niet onder de 20 blijven.
Garandeert dit dat mijn aanvraag geaccepteerd wordt?
Nee, en geen enkele tool kan dat eerlijk beloven. Wat hij doet, is de gepubliceerde cijfers precies toepassen en je elke meting laten zien die hij gedaan heeft, zodat de dingen die een formulier automatisch meet — pixelformaat, bestandsgrootte, formaat — kloppen, en de dingen die een mens beoordeelt — hoofdhoogte, ooglijn, de achtergrond — met getallen erbij voor je neus staan. De regels veranderen bovendien: elke specificatie hier zegt van welke instantie hij komt en wanneer hij gelezen is, zodat je hem kunt toetsen aan het formulier dat je voor je hebt in plaats van op een tabel te vertrouwen.
Is het gratis, en heb ik een account nodig?
Het is gratis, en er komt geen account, geen inlog, geen proefperiode en geen watermerk over je gezicht aan te pas. Er zit ook geen limiet op hoeveel foto's je maakt, omdat er geen server is die daarvoor betaalt. De site draait op advertenties, en die betalen hem; die advertenties krijgen niets over je foto mee.
Werkt het offline?
Ja. Laad de pagina één keer, verbreek daarna je internetverbinding en hij werkt gewoon door — het regelboek is een bestand dat met de pagina meekomt, geen opzoeking. Dat is meteen de eenvoudigste manier om te bewijzen dat er niets geüpload wordt: een tool die je foto wegstuurde om hem te laten uitsnijden zou stoppen op het moment dat je de stekker eruit trok.