# PicShop **Repository Path**: na1717/pic-shop ## Basic Information - **Project Name**: PicShop - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 21 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PicShop - 图片处理工具 基于 **PyQt6 + PIL + OpenCV** 开发的图片处理应用,提供丰富的图片编辑功能。 ## 功能特性 - **基础编辑**:打开、保存、裁剪、复制、粘贴 - **模式转换**:黑白/真彩转换 - **几何变换**:水平/垂直镜像、旋转、缩放 - **图像增强**:对比度、饱和度、亮度、清晰度调节 - **滤镜效果**:模糊、清晰、素描、浮雕、马赛克 - **人脸检测**:自动识别人脸并应用美化效果 - **图片合成**:支持透明插值和 RGB 通道合成 - **水印添加**:自定义文字水印 ## 项目结构 ``` pic-shop/ ├── PicShop.py # 主程序逻辑 ├── ui/ │ ├── PicShop.ui # Qt Designer 设计文件 │ └── PicShop_ui.py # UI 界面代码(自动生成) ├── image/ # 工具栏图标资源 ├── picture/ # 处理后图片保存目录 └── detector/ # 人脸检测分类器 └── haarcascade_frontalface_alt.xml ``` ## 核心类说明 ### 1. MyPicShop(主窗口类) 继承自 `Ui_MainWindow`,实现所有图片处理功能: | 功能模块 | 方法 | 说明 | |---------|------|------| | 文件操作 | `openPic()` / `savePic()` | 打开/保存图片 | | 区域选择 | `selRegion()` / `procCircle()` | 矩形/圆形区域选择与处理 | | 基础编辑 | `cutPic()` / `copyPic()` / `pastePic()` | 裁剪、复制、粘贴 | | 模式转换 | `convertBlackWhite()` / `convertMultiColour()` | 黑白/真彩转换 | | 几何变换 | `mirrorHorizontal/Vertical()` / `rotateLeft/Right()` / `zoomIn/Out()` | 镜像、旋转、缩放 | | 图像增强 | `enhanceContrast/Color/Bright/Sharp()` | 对比度、饱和度、亮度、清晰度 | | 滤镜效果 | `blurFace()` / `detailFace()` / `contourFace()` / `embossFace()` / `mosaicFace()` | 模糊、清晰、素描、浮雕、马赛克 | | 人脸检测 | `faceFilter()` | 使用 OpenCV 检测人脸 | | 图片合成 | `openComposition()` / `beginComposing()` | 双通道合成 | | 水印添加 | `addWaterMark()` | 文字水印叠加 | ### 2. PictureLabel(自定义图片标签) 继承自 `QLabel`,实现鼠标交互: - 支持矩形/圆形区域绘制 - 实时显示选择框(青色虚线) ### 3. 对话框类 | 对话框 | 功能 | |-------|------| | `RatioDialog` | 图片尺寸调整(支持百分比/像素/宽高比锁定) | | `TextMarkDialog` | 水印文字输入 | ## 快捷键支持 | 快捷键 | 功能 | |-------|------| | `Ctrl+O` | 打开图片 | | `Ctrl+S` | 保存图片 | | `Ctrl+X` | 裁剪 | | `Ctrl+C` | 复制 | | `Ctrl+V` | 粘贴 | ## 技术栈 | 组件 | 用途 | |------|------| | **PyQt6** | GUI 框架,事件处理,界面渲染 | | **PIL (Pillow)** | 图片读写、变换、增强、滤镜 | | **OpenCV** | 人脸检测(Haar 级联分类器) | | **NumPy** | 图像数据格式转换 | ## 安装依赖 ```bash pip install pyqt6 pillow opencv-python numpy ``` ## 运行方式 ```bash cd pic-shop python PicShop.py ``` ## 使用说明 1. **打开图片**:点击工具栏"打开"按钮或按 `Ctrl+O` 2. **区域选择**:点击工具栏区域选择按钮,在图片上拖拽选择区域 3. **应用效果**:选择区域后点击相应的滤镜按钮,或直接对整张图片应用效果 4. **人脸美化**:点击"人脸"按钮自动检测人脸,然后选择滤镜效果 5. **保存图片**:点击"保存"按钮或按 `Ctrl+S`,图片将保存到 `picture/` 目录