Skip to content

Repository files navigation

演出报批身份证水印工具(Flutter)

Android 与 Windows 共用一套 Flutter/Dart 业务代码。所有证件图片只在本机处理,不上传,也不需要账号或后台服务。

主要能力

  • 默认进入统一人员工作区,并预置“人员 1”;单人直接导入正反面,多人可继续加人或批量导入,不再维护两套重复流程。
  • Android 可分别拍摄正、反面;Windows 可选择本地扫描件。两端导入后都进入同一套裁剪确认流程。
  • 导入图片会在后台统一方向、透明背景和颜色格式,重新编码为标准 RGB JPEG,并将工作图长边限制为 2000 px,避免特殊格式或超大照片导致黑屏、崩溃。
  • 裁剪页使用 BoxFit.contain 完整显示图片,支持矩形整体移动/缩放、四角透视微调、增强、黑白和不裁剪直接使用。
  • 扫描处理完全离线,透视拉正和模糊/反光提示均由纯 Dart 完成;不包含自动识边、OpenCV、OCR、ML Kit 或 Google Play 动态模块。
  • 水印默认灰色,可设置用途模板、报批日期、正反面独立字号、角度、透明度、垂直位置和平铺显示;字号联动默认锁定,可解锁分别调整。
  • 预览开关直接把原图区域切换为水印效果,不额外增加重复预览卡片。
  • “本次调整”可直接导出当前人员;支持正反面独立 PNG/JPG、每人 PDF 和 ZIP,不改变批次勾选状态。
  • 工作区面向 1–100 人:演出信息只填一次,支持拖拽/多选导入、根据“正面/反面/front/back”自动配对、待分配区、人员勾选、全选/反选、失败隔离、重试与取消。
  • 顶部选择用途模板,旁边的“本次调整”可修改当前项目而不覆盖模板;支持恢复模板和另存为新模板。演出名称、日期和人员资料不会写入模板。
  • 设置内提供模板管理界面;系统默认模板只读,自定义模板支持应用、重命名和删除。
  • 批次支持独立 PNG/JPG、每人一份 PDF、全员合并 PDF 和带可选状态清单的 ZIP;导出前可选择目标文件夹。
  • 所有导出图片都会重新编码以移除 EXIF、GPS 和相机信息,并在导出前提示缺面、占位文字或水印覆盖风险;提示不代表法律审核结论。
  • 项目默认不落盘。用户主动保存时生成 .idwproj:Argon2id 派生密钥,manifest 与每张图片分别采用 AES-256-GCM 加密;错误密码或内容被篡改时拒绝打开。
  • Android 成品仅申请相机等本地能力,不含 INTERNET 权限。

开发与构建

flutter pub get
flutter analyze
flutter test
flutter build windows --release
flutter build apk --release

Windows 交付时必须保留 Release 目录中的 EXE、DLL 与 data 子目录,不能只复制单个 EXE。仓库不包含 Android 发布证书;从公开源码构建 Release APK 前,需要创建自己的 android/key.properties 与密钥文件。

项目已配置 Fastforge 与 Inno Setup,可复用以下命令生成标准 Windows 安装包:

fastforge package --platform windows --targets exe

test_assets 中的证件图为虚构测试素材,不包含真人身份信息。Android 发布密钥和 key.properties 被 Git 忽略;正式维护者必须自行安全备份,不能上传到仓库。

入口为 lib/main.dart,当前版本为 1.5.6+22

About

完全离线的营业性演出报批身份证水印工具,支持 Android 与 Windows。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages