证件照伴侣 - 项目介绍
一、项目介绍
证件照伴侣是一套基于 AI 抠图技术实现的微信小程序证件照生成系统,由 Java 后端 + 两套微信小程序前端 + 管理员网页后台组成。
项目对接开源项目 HivisionIDPhotos(2024.09.25 版本),通过内置 MTCNN + hivision_modnet 模型在本地完成人像抠图、背景替换、尺寸裁切等处理,用户无需调用付费 API,零成本无限次生成证件照。
核心亮点
本地 0 成本处理,无需单独购买 API 不保存用户原图,仅保留生成后的最新一张 自带 759+ 种证件照尺寸规格 支持自定义尺寸、自定义背景色 支持普通下载和高清下载双模式 支持水印、流量主、自由开关鉴黄 自带管理员网页后台进行统计与管理
二、项目结构目录
项目根目录下分为三大模块:
JP17-证件照微信小程序/
├── Java后端/ # Spring Boot 后端服务
│ ├── pom.xml # Maven 依赖配置
│ ├── 1.sql # 数据库初始化脚本(含 759+ 尺寸数据)
│ ├── README.md # 后端说明文档
│ ├── assets/ # 截图资源
│ └── src/main/
│ ├── java/org/zjzWx/
│ │ ├── App.java # 启动入口(@SpringBootApplication)
│ │ ├── config/ # 配置类(CORS、MyBatis-Plus、Sa-Token)
│ │ ├── controller/ # 控制层(Admin/Api/Item/User)
│ │ ├── dao/ # 数据访问层(Mapper)
│ │ ├── entity/ # 实体类(Admin/Custom/Item/Photo/User/WebSet)
│ │ ├── model/ # DTO 与 VO 对象
│ │ ├── service/ # 业务接口及实现
│ │ ├── task/ # 定时任务(PhotoTask)
│ │ ├── util/ # 工具类(HttpClient/PicUtil/R)
│ │ └── file/ # 图片上传处理
│ └── resources/
│ └── application.yml # 核心配置文件
│
├── 小程序前端_第一套/ # 基于 Vant Weapp 的传统版前端
│ ├── ymhZjz/ # 小程序源码目录
│ │ ├── app.js / app.json
│ │ ├── pages/ # 11 个页面
│ │ │ ├── home/ # 首页
│ │ │ ├── mine/ # 个人中心
│ │ │ ├── camera/ # 拍照页
│ │ │ ├── preEdit/ # 预处理
│ │ │ ├── edit/ # 编辑(含 complete 完成)
│ │ │ ├── sizeList/ # 尺寸列表
│ │ │ ├── searchs/ # 搜索
│ │ │ ├── custom/ # 自定义尺寸
│ │ │ ├── works/ # 我的作品
│ │ │ ├── login/ # 登录
│ │ │ └── admin/ # 管理员入口
│ │ ├── images/
│ │ └── miniprogram_npm/ # npm 构建产物
│ └── project.config.json
│
├── 小程序前端_第二套/ # 基于 Skyline + SCSS 的轻量版前端
│ ├── miniprogram/
│ │ ├── app.js / app.json / app.scss
│ │ ├── pages/ # 10 个页面
│ │ │ ├── index/ # 首页
│ │ │ ├── user/ # 我的
│ │ │ ├── photo/ # 相册
│ │ │ ├── camera/ # 拍照
│ │ │ ├── preedit/ # 预处理
│ │ │ ├── edit/ # 编辑
│ │ │ ├── search/ # 搜索
│ │ │ ├── custom/ # 自定义
│ │ │ ├── customlist/ # 自定义列表
│ │ │ └── login/ # 登录
│ │ └── assets/
│ └── project.config.json
│
└── 搭建教程.docx # 图文搭建教程
两套前端差异:第一套功能更全(含高级参数、自定义颜色、管理员入口),第二套"小而巧、雅而美",使用 Skyline 渲染引擎和 SCSS 预处理,但暂无高级参数与自定义颜色功能。
三、项目主要技术框架
后端技术栈(Java后端)
前端技术栈(小程序前端)
第一套:原生微信小程序 + Vant Weapp 组件库(按钮/图片/Tab/搜索/对话框等) 第二套:原生微信小程序 + Skyline 渲染引擎 + SCSS 预处理器 + glass-easel 组件框架 共同:自定义导航栏( navigationStyle: custom)、TabBar 底部导航
外部依赖服务
HivisionIDPhotos(2024.09.25):核心 AI 抠图模型服务(内置 MTCNN + hivision_modnet) zjzNsfw:可选的鉴黄 API 服务 MySQL 8.0/5.7 + Redis 7.2.4(任意版本均可) 宝塔/Nginx 静态站点:用于图片存储与 HTTPS 访问
四、项目主要功能
用户端功能
微信登录:基于 app_id + app_secret 实现小程序登录鉴权 拍照/相册选择:支持调用相机拍摄或从相册上传原图 AI 自动抠图:调用 HivisionIDPhotos 完成人像分割、背景透明化 背景色替换:自由切换证件照背景颜色(蓝/白/红/渐变等) 尺寸选择:内置 759+ 规格库,覆盖一寸、二寸、签证、各类网申证件照 自定义尺寸:用户自定义像素宽高、毫米尺寸、DPI 分辨率 高清/普通下载:双清晰度输出,支持引导保存相册 个人中心:我的作品、定制尺寸列表、看广告视频下载 水印与流量主:支持水印图、接入微信流量主广告变现
管理端功能
管理员网页后台:访问 zjzAdmin项目,统计生成量、用户数等数据小程序管理员入口:第一套前端内置 admin 页面
后端服务功能
11 个 Controller/Service 模块化业务 Sa-Token 单 Token 鉴权(一人一 Token,多端互踢) 图片本地化存储(路径 + 域名可配置) 定时任务 PhotoTask处理异步图片任务鉴黄 API 自由开关(建议过审时开启,平时关闭)
排期/规划功能
14 种衣服自由换装 物品自定义抠图 黑白图片上色 黏土风写真生成 无感登录
五、项目安装和部署
环境准备
后端部署步骤
数据库初始化
创建数据库 zjzwx导入 Java后端/1.sql(自动建立 admin / custom / item / photo / photo_record / user / web_set 7 张表,并预置 759+ 尺寸数据)打开 web_set表,配置微信小程序的 app_id与 app_secret修改配置
application.ymlRedis:修改 host/ port/ password(默认 127.0.0.1:6379,password=123456,database=3)MySQL:修改 url/ username/ password(默认 127.0.0.1:3306/zjzwx)图片存储:修改 webset.directory(如 /www/wwwroot/zjzpic/pic)和 webset.picDomain(图片域名,需 HTTPS)API 地址: webset.safetyDomain(鉴黄 API)、webset.zjzDomain(证件照 API),建议填 127.0.0.1本地调用,更快更安全envVersion: release(正式版)/ trial(体验版)/ develop(开发版)图片站点搭建:在宝塔/Nginx 新建静态网站,目录指向
webset.directory,配置 SSL 证书开启 HTTPS。打包运行
IDEA 导入 Maven 项目 执行 mvn clean package,打包产物输出至 D:/jar2目录(pom.xml 中 outputDirectory配置)运行 java -jar xxx.jar,默认端口 8010小程序域名配置:在微信公众平台「服务器域名」中添加后端服务域名、图片域名等。
小程序前端部署步骤
微信开发者工具打开 小程序前端_第一套或 小程序前端_第二套修改前端源码中的后端 API 地址(详见各 README 中的截图指引,仅需改一处) 在「工具 → 构建 npm」中构建 Vant Weapp 依赖(第一套) 配置隐私协议、客服(详见各 README 截图) 真机预览调试,确认无误后上传发布
部署注意事项
鉴黄模型精度有限,建议仅在过审时开启,平时关闭 自部署证件照 API 与鉴黄 API 时不建议开放外网,yml 中填 127.0.0.1防止被抓接口滥用频繁使用的配置项未放入数据库以避免频繁握手 MySQL
项目地址:夸克:https://pan.quark.cn/s/00aa63f2b23d
百度:https://pan.baidu.com/s/1slji5oglbJxvGCB7r3lAIw?pwd=8888