Skip to content

Repository files navigation

证件照制作工具 (ID Photo Maker)

Build Android APK Release License Platform

使用原生 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 抠图库,灵感来源

About

基于Python/Kivy的Android证件照制作工具,支持AI抠图和自定义尺寸

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages