Files
chengnan/README.md
luochen570 7df5312e16
Some checks failed
Build Windows Release / build-windows (push) Has been cancelled
chore: keep build tooling in workflow only
2026-05-29 23:05:25 +08:00

116 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# chengnan
chengnan 是一个面向 Windows 的图片查看器 / 简单图像处理应用,使用 **Qt Widgets + OpenCV + CMake + C++17** 开发。
## 项目定位
- 目标平台Windows x64
- 应用类型:桌面图片查看器
- 构建方式:只在 Gitea Actions 工作流中构建和打包
- 仓库内容只保留源码、CMake 配置、文档和工作流
- 仓库不包含CMake/Ninja/Qt/OpenCV/MSYS2/vcpkg 等编译工具、SDK、第三方二进制依赖、本地构建产物
## 功能
当前已实现:
- 打开图片
- 保存图片、另存图片
- 使用 Qt QWidget 体系显示图片,不使用 `cv::imshow`
- 左右对比显示原图和处理后图片
- 图片视图支持:
- 鼠标滚轮缩放
- 双击适配窗口
- 拖拽平移视图
- 基础图像处理:
- 放大 / 缩小
- 平移
- 指定角度旋转
- 阈值分割 + 轮廓目标提取
- 基于 HSV 均值的简单规则分类
- 使用 `QThread` + 信号槽执行 OpenCV 处理任务,避免阻塞 UI
## 技术栈
- C++17
- Qt Widgets / Qt Concurrent
- OpenCV
- CMake
- Gitea Actions
## 目录结构
```text
chengnan/
├── .gitea/workflows/
│ └── build-windows-release.yml # Windows 构建与发布工作流
├── app/
│ ├── include/ # 头文件
│ └── src/ # 源文件
├── CMakeLists.txt
├── .gitignore
└── README.md
```
## 构建与发布
本项目不在仓库中保存编译工具或第三方二进制依赖。所有构建工作都在 `.gitea/workflows/build-windows-release.yml` 中完成。
工作流会在 Windows Runner 中临时完成以下步骤:
1. 拉取源码
2. 安装 Windows 构建环境和依赖
3. 配置 CMake
4. 编译 Release 版本
5. 部署 Qt / OpenCV / MinGW 运行时依赖
6. 打包 Windows 发布包
7. 生成 SHA256 校验文件
8. 上传构建产物
触发方式:
- push 到 `main`
- 创建 `v*` 标签
- Pull Request 到 `main`
- 手动触发 `workflow_dispatch`
构建产物:
```text
chengnan-windows-x86_64.zip
chengnan-windows-x86_64.zip.sha256
```
发布包解压后,双击 `chengnan.exe` 运行。请保留同目录 DLL 和 Qt 插件目录,不要只复制单个 exe。
## 本地开发说明
仓库不提供本地依赖安装脚本,也不保存编译工具。若需要本地开发,请自行在 Windows 上安装:
- CMake
- Ninja
- Qt 6
- OpenCV
- C++ 编译器MSVC 或 MinGW
然后按常规 CMake 项目方式配置和构建。正式发布以 Gitea Actions 产物为准。
## 依赖管理原则
- 不提交编译器、CMake、Ninja、Qt、OpenCV、MSYS2、vcpkg 等工具或 SDK
- 不提交 `build-*``dist-*``.exe``.dll` 等构建产物
- 第三方依赖只在工作流运行期间临时安装
- 发布包只作为工作流 artifact 产出,不进入源码仓库
## 验收标准
- 可以打开常见图片格式,例如 PNG、JPG、BMP
- 可以保存当前处理后的图片
- 可以另存为指定路径
- 可以在同一界面中对比显示处理前和处理后图片
- 支持缩放、平移、旋转操作
- 至少实现目标提取或分类功能之一
- 图片显示使用 QWidget 体系,不使用 OpenCV 窗口显示函数
- 图像处理任务不会明显阻塞 UI
- Windows 发布包可直接解压运行