f63480b5c2d4f79d62217bc4eaf8cb5fab376085
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
目录结构
chengnan/
├── .gitea/workflows/
│ └── build-windows-release.yml # Windows 构建与发布工作流
├── app/
│ ├── include/ # 头文件
│ └── src/ # 源文件
├── CMakeLists.txt
├── .gitignore
└── README.md
构建与发布
本项目不在仓库中保存编译工具或第三方二进制依赖。所有构建工作都在 .gitea/workflows/build-windows-release.yml 中完成。
工作流会在 Windows Runner 中临时完成以下步骤:
- 拉取源码
- 安装 Windows 构建环境和依赖
- 配置 CMake
- 编译 Release 版本
- 部署 Qt / OpenCV / MinGW 运行时依赖
- 打包 Windows 发布包
- 生成 SHA256 校验文件
- 上传构建产物
触发方式:
- push 到
main - 创建
v*标签 - Pull Request 到
main - 手动触发
workflow_dispatch
构建产物:
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 发布包可直接解压运行
Description
Languages
C++
83.2%
Batchfile
6.7%
CMake
5.6%
Shell
4.5%