更新记录

1.0.0(2025-12-29) 下载此版本

AI证件照制作,1.0.0版本


平台兼容性

# 📷 小七快照拍 **一款基于 AI 的智能证件照制作微信小程序** [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![UniApp](https://img.shields.io/badge/UniApp-2.x-green.svg)](https://uniapp.dcloud.io/) [![Vue](https://img.shields.io/badge/Vue-2.6-brightgreen.svg)](https://vuejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-4.x-blue.svg)](https://www.typescriptlang.org/) [功能介绍](#-功能特性) • [快速开始](#-快速开始) • [项目结构](#-项目结构) • [部署指南](#-部署指南) • [常见问题](#-常见问题)

📖 项目简介

小七快照拍 是一款基于 HivisionIDPhotos 开源算法的智能证件照制作微信小程序。通过 AI 技术实现人像智能抠图、背景替换、证件照生成等功能,让用户在手机上就能轻松制作标准证件照。

🎯 为什么选择小七快照拍?

  • 🤖 AI 智能抠图 - 基于深度学习的人像分割算法,精准识别人物轮廓
  • � 标准规格 - 内置多种标准证件照尺寸,满足各类证件需求
  • 🎨 多彩背景 - 支持白、蓝、红等多种标准背景色一键切换
  • 📱 便捷操作 - 无需专业技能,拍照即可生成专业证件照
  • 💰 完全免费 - 开源项目,可自行部署使用

✨ 功能特性

🎫 证件照制作

  • ✅ 支持一寸、二寸、小一寸、小二寸等标准规格
  • ✅ 自定义证件照尺寸(宽度、高度、DPI)
  • ✅ 智能人像抠图与背景替换
  • ✅ 8种常用背景色(白、蓝、红、浅蓝、灰、深红、深蓝、粉色)
  • ✅ 高清/标清双模式输出
  • ✅ 六寸排版照生成(用于冲印)

🖼️ 图像处理

  • 人像抠图 - AI 智能分离人物与背景,输出透明底PNG
  • 图片水印 - 添加自定义文字水印,支持调节大小、透明度、角度
  • 图像压缩 - 智能调整文件大小,满足各平台上传要求

📋 其他功能

  • ✅ 电子照管理 - 保存常用证件照,方便随时使用
  • ✅ 激励视频广告 - 支持微信激励广告变现
  • ✅ 分享功能 - 支持分享到好友和朋友圈

🖥️ 效果预览

首页 电子照 证件照编辑 人像抠图 图片加水印 个人中心

📸 截图待补充,欢迎提交 PR

🛠️ 技术栈

技术 说明 版本
UniApp 跨平台开发框架 2.x
Vue.js 前端框架 2.6.x
TypeScript 类型安全 4.x
Vuex 状态管理 3.x
uView UI UI 组件库 2.0.36
Sass/SCSS CSS 预处理器 -

后端服务

本项目后端采用 HivisionIDPhotos 开源项目,这是一个轻量级的 AI 证件照制作算法,具有以下特点:

  • 🚀 轻量级部署,支持 CPU 推理
  • 🎯 高精度人像分割
  • 📐 标准证件照尺寸裁剪
  • 🎨 智能背景色替换
  • 📦 支持 Docker 一键部署

感谢 @Zeyi-Lin 提供的优秀开源算法!

📁 项目结构

src/
├── api/                    # API 接口定义
│   ├── matting.ts         # 人像抠图接口
│   ├── photo.ts           # 证件照生成接口
│   ├── photo-enhanced.ts  # 增强功能接口
│   └── watermark.ts       # 水印处理接口
├── assets/                # 静态资源(样式)
├── components/            # 公共组件
│   ├── LoadingOverlay.vue # 加载动画组件
│   └── ShareButton.vue    # 分享按钮组件
├── config.ts              # 项目配置(API地址、广告ID等)
├── enums/                 # 枚举定义
├── model/                 # 数据模型/类型定义
│   ├── Colors.ts          # 背景色配置
│   ├── Interfaces.ts      # 接口定义
│   ├── PhotoSize.ts       # 证件照尺寸
│   └── size.json          # 尺寸规格数据
├── pages/                 # 页面文件
│   ├── index/             # 首页(尺寸选择)
│   ├── photo/             # 证件照(拍照、编辑)
│   ├── electronic/        # 电子照管理
│   ├── matting/           # 人像抠图
│   ├── watermark/         # 图片水印
│   ├── mine/              # 个人中心
│   ├── user-agreement/    # 用户协议
│   └── privacy-policy/    # 隐私政策
├── static/                # 静态资源(图片)
├── store/                 # Vuex 状态管理
└── utils/                 # 工具函数
    ├── electronic-photo.ts # 电子照管理
    ├── request.ts         # 网络请求封装
    └── storage.ts         # 本地存储管理

🚀 快速开始

环境要求

  • Node.js >= 14.0.0
  • yarn 或 npm
  • 微信开发者工具
  • HivisionIDPhotos 后端服务

1. 克隆项目

git clone https://gitee.com/nextvue/id-photo.git
cd id-photo

2. 安装依赖

# 推荐使用 yarn
yarn install

# 或使用 npm
npm install

3. 配置项目

修改 src/config.ts 中的配置:

// API 服务地址(你的 HivisionIDPhotos 后端地址)
const baseApi: { [key: string]: EnvironmentConfig } = {
  development: {
    host: "https://your-api-domain.com",  // 修改为你的API地址
  },
  production: {
    host: "https://your-api-domain.com",
  },
};

// 微信激励广告配置(可选)
export const adConfig = {
  rewardedVideoAdUnitId: 'your-ad-unit-id'  // 你的广告单元ID
};

修改 src/manifest.json 中的微信小程序 AppID。

4. 启动开发

# 微信小程序开发
yarn dev:mp-weixin

# H5 开发
yarn serve

使用微信开发者工具打开 dist/dev/mp-weixin 目录即可预览。

5. 构建发布

# 构建微信小程序
yarn build:mp-weixin

# 构建 H5
yarn build:h5

📦 部署指南

后端部署(HivisionIDPhotos)

推荐使用 Docker 部署后端服务:

# 拉取镜像
docker pull linzeyi/hivision_idphotos

# 运行容器
docker run -d -p 8080:8080 linzeyi/hivision_idphotos

详细部署文档请参考:HivisionIDPhotos 部署指南

前端部署

  1. 执行 yarn build:mp-weixin 构建项目
  2. 使用微信开发者工具打开 dist/build/mp-weixin 目录
  3. 点击"上传"提交到微信公众平台
  4. 在微信公众平台提交审核

🔧 API 接口说明

项目使用的 HivisionIDPhotos API 接口:

接口 方法 说明
/idphoto POST 生成证件照(抠图+裁剪)
/human_matting POST 人像抠图(仅抠图)
/add_background POST 添加/更换背景色
/generate_layout_photos POST 生成六寸排版照
/set_kb POST 设置图片文件大小

详细接口文档:HivisionIDPhotos API 文档

❓ 常见问题

Q: 如何修改证件照规格? 编辑 `src/model/size.json` 文件,按照现有格式添加新的规格: ```json { "name": "规格名称", "pxWidth": 295, "pxHeight": 413, "mmWidth": 25, "mmHeight": 35 } ```
Q: 如何添加新的背景色? 编辑 `src/pages/photo/edit.vue` 中的 `colorConfig` 数组: ```typescript const colorConfig = [ { name: '颜色名称', color: '#HEX颜色值' }, // ... ] ```
Q: 如何关闭广告功能? 在相关页面中,将 `showRewardedVideoAd()` 方法的返回值改为直接返回 `true`,或删除广告相关代码。
Q: 编译报错 "multiple default exports"? 这是 IDE 的误报(vue-property-decorator 的问题),不影响实际编译和运行。

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'feat: 添加某个功能')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

提交规范

  • feat: 新功能
  • fix: 修复问题
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • chore: 构建/工具变动

📄 开源协议

本项目采用 MIT 开源协议。

💖 支持项目

如果这个项目对你有帮助,欢迎:

  • ⭐ 给项目点个 Star
  • 🐛 提交 Issue 反馈问题
  • 🔀 提交 PR 贡献代码
  • 📢 分享给更多人

🔗 关注与支持

关注公众号 扫码支持(支付宝) 扫码支持(微信)
获取最新动态 请作者喝杯咖啡 ☕ 请作者喝杯咖啡 ☕

🙏 致谢


**如果觉得项目不错,请给个 ⭐ Star 支持一下!** Made with ❤️ by [小七快照拍](https://gitee.com/nextvue/id-photo.git)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

小程序图片选择权限 小程序应用分享权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

后端采用开源项目,可自行部署后端服务

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。