做过护照或签证照片工具的开发者都知道,真正折磨人的不是人脸识别,也不是背景分割——是各国五花八门的规格要求。尺寸、背景色、文件大小限制、头部比例,每个国家都不一样。这些资料散落在各国领事馆的网站上,用十几种语言写成,其中一半链接每六个月就404一次。
开发者WhiteTirocket在搭建免费浏览器端工具IDPhotoSnap的过程中,花了整整一年维护这套数据集。上周他把全部内容开源发布:MIT协议,JSON格式,附带TypeScript和Python绑定,覆盖100个国家、248种证件类型,还搭了一个无需认证的公共HTTP API。
![]()
数据结构设计得很直接。每个国家条目包含护照、签证、身份证、驾照、居留许可等证件类型。每种证件的规格字段包括:毫米尺寸(widthMm/heightMm)、像素尺寸(widthPx/heightPx)、DPI、背景色描述和十六进制色值、以及具体要求列表。国家条目则包含ID、名称、国旗emoji和证件数组。
![]()
使用方式有三种。最简单的直接调API:GET /api/specs返回完整数据集(带Schema.org的JSON-LD包装),加country参数可筛选单一国家,加format=raw拿纯JSON。接口不设认证、开放CORS、边缘缓存一小时,作者明确表示"可直接用于生产环境"。
想本地集成的可以npm install直接从GitHub仓库导入,提供findDocument和findCountry两个核心函数。或者干脆拷贝specs/specs.json(174KB),用任何语言解析。仓库里的Python、Go、Rust示例覆盖了最常见的三种用法:按国家筛选、按slug查询、验证规格一致性。
![]()
作者开源的动机很实在:市面上大多数工具号称"支持200+国家""900+证件类型",实际检查会发现两种套路。一种是拿ICAO 9303标准(35x45mm白底)当万能默认,没独立验证过的国家全用这个凑数。另一种是爬虫抓来的数据,错漏百出——某知名工具把印度护照的头部比例标成50-70%,实际是70-80%,直接导致照片被拒。
这套数据集的价值在于省掉重复劳动。下一个做同类产品的开发者,不用再去爬那些常年404的领事馆网页了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.