使用原生 Android (Kotlin + ONNX Runtime) 开发的证件照制作应用。全程本地 AI 处理,无需上传照片到任何服务器,保护你的隐私安全。
| 对比项 | 本工具 | 市面大部分工具 |
|---|---|---|
| 隐私保护 | 完全本地处理 | 照片上传云端 |
| 网络要求 | 完全离线使用 | 全程需要网络 |
| 费用 | 完全免费开源 | 通常收费 |
| 背景移除 | U2Net AI 模型(内置于APK) | 服务端处理 |
| 照片尺寸 | 13 种标准尺寸 + 自定义 | 有限选择 |
- AI 智能抠图 — 基于 U2Net 深度学习模型,本地 ONNX Runtime 推理,精准分离人像与背景
- 13 种标准尺寸 — 一寸、小一寸、大一寸、二寸、小二寸、大二寸、五寸、社保卡、护照、驾照、美国签证、日本签证、欧洲签证
- 9 种背景色 — 白色、蓝色(#438EDB)、浅蓝(#87CEEB)、红色(#FF0000)、深红(#C80000)、灰色(#808080)、浅灰(#C0C0C0)、粉色(#FFC0CB)、米色(#F5F5DC)
- 自定义尺寸 — 支持像素和厘米两种单位输入,自动锁定宽高比
- 照片排版 — 自动生成 5 寸相纸排版,即存即印
- 美颜效果 — 皮肤美白处理
- 实时预览 — 切换背景色/尺寸即时看到效果
- 拖拽裁剪 — 支持拖动和双指缩放调整裁剪区域
- 透明棋盘格 — 参考桌面端设计,方便查看透明区域
- 拍照/相册 — 支持相机拍摄和相册选取两种方式
- 一键分享 — 直接分享到微信、QQ 等应用
- 照片处理完全在设备本地完成
- 不收集、不上传、不存储任何用户数据到服务器
- AI 模型内置于 APK 中,无需网络连接,安装即用
- 详见 隐私政策
| 主界面 | AI抠图&裁剪 | 生成结果 | 大一寸示例 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
从 GitHub Releases 下载最新 APK。
| 版本 | 文件名包含 | AI 模型 | APK 大小 | 建议 |
|---|---|---|---|---|
| 完整版 | _full_ |
U2Net (176MB) | ~188MB | 4GB+ 内存 |
| 轻量版 | _lite_ |
U2NetP (4.7MB) | ~27MB | 低端机 / 小存储 |
两个版本可同时安装,互不冲突。
系统要求:Android 7.0+ (API 24),ARM64 设备
# 1. 克隆仓库
git clone https://github.com/HuaKaiBuChangWu/ID-Photo-Maker-Android.git
cd ID-Photo-Maker-Android/android-project
# 2. 构建(AI 模型由 CI 自动下载,如需本地构建请自行放入对应目录)
./gradlew assembleFullDebug # 完整版
./gradlew assembleLiteDebug # 轻量版用 Android Studio 打开 android-project/ 目录也能直接构建运行。
| 组件 | 技术/版本 |
|---|---|
| 开发语言 | Kotlin |
| AI 推理引擎 | ONNX Runtime Android 1.17.0 |
| AI 模型 | U2Net (u2net.onnx, 176MB, 输入320×320) |
| 最低 SDK | 24 (Android 7.0) |
| 目标 SDK | 34 (Android 14) |
| Java | 17 |
| 构建工具 | Gradle 8.2 + AGP 8.2.0 |
| CI/CD | GitHub Actions |
| 架构 | ARM64-v8a |
├── .github/workflows/ # CI/CD 自动构建
│ └── build-android-apk.yml
├── android-project/ # Android 应用主工程
│ ├── app/src/main/
│ │ ├── java/com/example/idphotomaker/
│ │ │ ├── MainActivity.kt # 主界面与流程控制
│ │ │ ├── BackgroundRemover.kt # ONNX Runtime AI 推理引擎
│ │ │ ├── IDPhotoProcessor.kt # 证件照生成与排版
│ │ │ ├── CropOverlayView.kt # 自定义裁剪控件
│ │ │ └── IDPhotoPreviewView.kt # 实时预览控件
│ │ └── res/ # 布局与资源
│ └── build.gradle
├── scripts/ # 工具脚本
│ ├── generate_icons.py # 图标生成
│ ├── generate_rounded_icons.py # 圆角图标生成
│ └── change_icon_bg_color.py # 图标背景色修改
├── convert_u2net_to_onnx.py # PyTorch → ONNX 模型转换
├── verify_model.py # ONNX 模型校验
├── CHANGELOG.md # 版本变更记录
├── PRIVACY_POLICY.md # 隐私政策
├── LICENSE # MIT 许可证
└── README.md # 本文件
本项目最初尝试用 Python-for-Android (Buildozer/Kivy) 方案,经历了 180+ 次构建失败后(numpy、NDK、libffi 等交叉编译兼容性问题),果断推倒重来,使用原生 Android (Kotlin + ONNX Runtime) 重写。这次重写让项目从"能否跑起来"变成了"能稳定发布"。
中间也实验过 ISNet 模型,最终因为效果和性能平衡选择回退到更成熟的 U2Net。
欢迎提交 Issue 和 Pull Request!
- 批量处理模式 — 多图连续处理,统一参数自动排队,适合批量采集场景
- 轻量模型选项 (u2netp, 4.7MB) — 低端机友好,内存占用大幅下降,精度略降
- ML Kit 人脸检测,更精确的人像定位(可选)
MIT License © 2026 HuaKaiBuChangWu
- U2-Net — 背景移除深度学习模型
- ONNX Runtime — 跨平台 AI 推理引擎
- rembg — Python 抠图库,灵感来源



