夜雨聆风学习资料网

ARTICLE · 1135226

【项目源码】自建AI证件照小程序,可流量主

【项目源码】自建AI证件照小程序,可流量主
关注微信公众号:【源码部落】,获取开源项目分享。

证件照伴侣 - 项目介绍

一、项目介绍

证件照伴侣是一套基于 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后端)

技术
版本
用途
Spring Boot
2.4.0
应用框架
MyBatis-Plus
3.5.7
ORM 持久层
MySQL Connector/J
8.0.22
数据库驱动
Sa-Token
1.38.0
鉴权认证(含 Redis-Jackson 集成)
Redis(Lettuce 连接池)
-
缓存与 Token 存储
FastJSON
2.0.31
JSON 序列化
Apache HttpClient
-
调用 HivisionIDPhotos API
Lombok
-
实体简化
JDK
1.8
运行环境

前端技术栈(小程序前端)

  • ‎第一套:原生微信小程序 + 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 访问

四、项目主要功能

用户端功能

  1. ‎微信登录:基于 app_id + app_secret 实现小程序登录鉴权
  2. ‎拍照/相册选择:支持调用相机拍摄或从相册上传原图
  3. ‎AI 自动抠图:调用 HivisionIDPhotos 完成人像分割、背景透明化
  4. ‎背景色替换:自由切换证件照背景颜色(蓝/白/红/渐变等)
  5. ‎尺寸选择:内置 759+ 规格库,覆盖一寸、二寸、签证、各类网申证件照
  6. ‎自定义尺寸:用户自定义像素宽高、毫米尺寸、DPI 分辨率
  7. ‎高清/普通下载:双清晰度输出,支持引导保存相册
  8. ‎个人中心:我的作品、定制尺寸列表、看广告视频下载
  9. ‎水印与流量主:支持水印图、接入微信流量主广告变现

管理端功能

  • ‎管理员网页后台:访问 ‎zjzAdmin 项目,统计生成量、用户数等数据
  • ‎小程序管理员入口:第一套前端内置 admin 页面

后端服务功能

  • 11 个 Controller/Service 模块化业务
  • Sa-Token 单 Token 鉴权(一人一 Token,多端互踢)
  • 图片本地化存储(路径 + 域名可配置)
  • 定时任务 ‎PhotoTask 处理异步图片任务
  • 鉴黄 API 自由开关(建议过审时开启,平时关闭)

排期/规划功能

  • 14 种衣服自由换装
  • 物品自定义抠图
  • 黑白图片上色
  • 黏土风写真生成
  • 无感登录

五、项目安装和部署

环境准备

依赖
版本要求
JDK
1.8
MySQL
8.0 或 5.7
Redis
7.2.4 或任意版本
Maven
3.x
微信开发者工具
最新稳定版
HivisionIDPhotos
2024.09.25 版(内置 MTCNN + hivision_modnet)

后端部署步骤

  1. ‎数据库初始化

    • 创建数据库 ‎zjzwx
    • 导入 ‎Java后端/1.sql(自动建立 admin / custom / item / photo / photo_record / user / web_set 7 张表,并预置 759+ 尺寸数据)
    • 打开 ‎web_set 表,配置微信小程序的 ‎app_id 与 ‎app_secret
  2. ‎修改配置 ‎application.yml

    • ‎Redis:修改 ‎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(开发版)
  3. ‎图片站点搭建:在宝塔/Nginx 新建静态网站,目录指向 ‎webset.directory,配置 SSL 证书开启 HTTPS。

  4. ‎打包运行

    • IDEA 导入 Maven 项目
    • 执行 ‎mvn clean package,打包产物输出至 ‎D:/jar2 目录(pom.xml 中 ‎outputDirectory 配置)
    • 运行 ‎java -jar xxx.jar,默认端口 8010
  5. ‎小程序域名配置:在微信公众平台「服务器域名」中添加后端服务域名、图片域名等。

小程序前端部署步骤

  1. 微信开发者工具打开 ‎小程序前端_第一套 或 ‎小程序前端_第二套
  2. 修改前端源码中的后端 API 地址(详见各 README 中的截图指引,仅需改一处)
  3. 在「工具 → 构建 npm」中构建 Vant Weapp 依赖(第一套)
  4. 配置隐私协议、客服(详见各 README 截图)
  5. 真机预览调试,确认无误后上传发布

部署注意事项

  • 鉴黄模型精度有限,建议仅在过审时开启,平时关闭
  • 自部署证件照 API 与鉴黄 API 时不建议开放外网,yml 中填 ‎127.0.0.1 防止被抓接口滥用
  • 频繁使用的配置项未放入数据库以避免频繁握手 MySQL

这个项目源码获取方式

关注公众号,私信回复:JP17

相关学习资料