# ImagePaste **Repository Path**: bill_hu1971/image-paste ## Basic Information - **Project Name**: ImagePaste - **Description**: 简单图像编辑器,目的为拼接截图文档 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-24 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ImagePaste - 简易图像编辑器 ImagePaste是一个基于Qt开发的简易图像编辑器,提供图像查看、裁剪、复制选择区域等基本功能。 主要用于拼接屏幕截图的长文档 ## 功能特性 ### 基本操作 - 打开本地图像文件 - 从剪贴板粘贴图像 - 保存编辑后的图像 - 保存为新文件 ### 图像编辑 - 选择区域(支持拖动锚点调整大小和移动选择框) - 复制选择区域到剪贴板 - 裁剪图像 ### 图像变换 - 旋转图像(90度左/右) - 水平/垂直翻转 - 缩放控制(放大、缩小、重置缩放、适应窗口) ### 图像调整 - 亮度对比度调整 - 转换为灰度图 - 模糊和锐化效果 - 调整图像大小 ### 历史记录 - 撤销/重做操作支持 ## 构建和运行 ### 依赖项 - Qt 5.x 或 Qt 6.x - C++11 兼容的编译器 ### 构建步骤 #### Windows ```bash # 使用qmake构建 qmake imagePaste.pro mingw32-make # 或使用nmake,取决于您的编译器 # 或者使用Qt Creator打开项目文件 ``` #### Linux ```bash # 安装依赖(Ubuntu/Debian示例) sudo apt-get install qt5-default build-essential # 构建项目 qmake imagePaste.pro make # 运行程序 ./imagePaste ``` #### macOS ```bash # 确保已安装Xcode命令行工具 xcode-select --install # 使用qmake构建 qmake imagePaste.pro make # 运行程序 ./imagePaste.app/Contents/MacOS/imagePaste ``` ## 使用说明 ### 选择和编辑 1. **创建选择区域**:在图像上按住鼠标左键并拖动 2. **调整选择大小**:拖动选择框上的锚点 3. **移动选择框**:将鼠标悬停在选择框内部(光标变为四向箭头),然后按住鼠标左键拖动 4. **复制选择区域**:使用菜单或快捷键 Ctrl+C 5. **裁剪图像**:创建选择区域后,使用菜单中的裁剪功能 ### 快捷键 - **打开图像**:Ctrl+O - **复制选择区域**:Ctrl+C - **粘贴图像**:Ctrl+V - **放大**:Ctrl++ - **缩小**:Ctrl+- - **重置缩放**:Ctrl+0 - **适应窗口**:Ctrl+F - **向左旋转**:Ctrl+L - **撤销**:Ctrl+Z - **重做**:Ctrl+Y ## 项目结构 ``` imagePaste/ ├── imagePaste.pro # Qt项目文件 ├── imageeditor.cpp # 主编辑器实现 ├── imageeditor.h # 主编辑器头文件 ├── main.cpp # 程序入口 ├── .gitignore # Git忽略文件 └── README.md # 项目说明(当前文件) ``` ## 开发说明 ### 主要类和功能 - **ImageEditor**:主窗口类,包含所有UI和编辑功能 - 支持鼠标交互的选择框和锚点系统 - 图像编辑和变换操作 - 历史记录管理 ### 鼠标交互实现 - 使用自定义事件过滤器处理鼠标事件 - 支持锚点拖拽调整选择框大小 - 支持选择框内部点击拖动整个选择区域 - 鼠标光标根据悬停位置动态变化 ## 许可证 本项目采用 MIT 许可证 - 详情请查看 LICENSE 文件 ## 贡献 欢迎提交Issue和Pull Request! ## 联系方式 如有问题或建议,请联系项目维护者。