# ai-procrop-studio **Repository Path**: jsz315/ai-procrop-studio ## Basic Information - **Project Name**: ai-procrop-studio - **Description**: 专业图片裁剪工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-22 - **Last Updated**: 2025-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
GHBanner
# ProCrop Studio 一个功能强大、界面精美的在线图片裁剪工具,专为设计师、内容创作者和开发者打造。支持多种宽高比、固定尺寸预设、自定义尺寸、旋转缩放等功能,让图片裁剪变得简单高效。 ## ✨ 功能特性 ### 🎯 核心功能 - **智能裁剪** - 基于 `react-easy-crop` 的流畅裁剪体验,支持拖拽调整裁剪区域 - **多种宽高比** - 预设常用宽高比:自由、1:1、4:3、16:9、3:4、9:16 - **固定尺寸预设** - 内置社交媒体常用尺寸: - Instagram Post (1080×1080) - Instagram Portrait (1080×1350) - Instagram Story (1080×1920) - Facebook Link (1200×630) - **自定义尺寸** - 支持输入任意宽度和高度(像素) - **图片变换** - 缩放(0.2x - 4x)和旋转(0° - 360°) - **多格式导出** - 支持 PNG、JPEG、WEBP 格式 - **质量控制** - JPEG/WEBP 格式可调节压缩质量(10% - 100%) ### 🎨 界面设计 - **现代化 UI** - 深色主题,采用 Zinc 配色方案 - **响应式布局** - 左侧画布区域 + 右侧控制面板 - **直观操作** - 拖拽上传、点击选择,操作流畅自然 - **实时预览** - 所有调整即时反映在画布上 - **网格辅助线** - 裁剪时显示网格,便于精确对齐 ## 🛠️ 技术栈 - **前端框架**: React 19.2.0 - **构建工具**: Vite 6.2.0 - **语言**: TypeScript 5.8.2 - **核心库**: - `react-easy-crop` - 图片裁剪功能 - `lucide-react` - 图标组件 - **样式**: 原生 CSS + Tailwind CSS 原子类(通过 UnoCSS) - **开发体验**: - TypeScript 类型安全 - 热模块替换(HMR) - 组件化架构 ## 📦 安装与运行 ### 前置要求 - Node.js 18+ - pnpm(推荐)或 npm ### 安装步骤 1. **克隆项目** ```bash git clone cd procrop-studio ``` 2. **安装依赖** ```bash pnpm install # 或使用 npm npm install ``` 3. **启动开发服务器** ```bash pnpm dev # 或使用 npm npm run dev ``` 4. **访问应用** - 本地访问: http://localhost:3000 - 网络访问: http://0.0.0.0:3000 ### 构建生产版本 ```bash pnpm build # 或 npm run build ``` 构建产物将输出到 `dist` 目录。 ### 预览生产构建 ```bash pnpm preview # 或 npm run preview ``` ## 🚀 部署指南 项目已成功构建,构建产物位于 `dist` 目录。以下是几种部署方式: ### 方式一:Gitee Pages(推荐) 1. **构建项目** ```bash pnpm build ``` 2. **在 Gitee 仓库中启用 Pages** - 进入仓库:https://gitee.com/jsz315/ai-procrop-studio - 点击「服务」→「Gitee Pages」 - 选择分支:`master` - 选择目录:`dist` - 点击「启动」或「更新」 3. **访问部署地址** - 部署成功后,访问:`https://jsz315.gitee.io/ai-procrop-studio/` ### 方式二:Vercel(一键部署) 1. **安装 Vercel CLI** ```bash npm i -g vercel ``` 2. **部署** ```bash vercel ``` 或直接访问 [Vercel](https://vercel.com) 并导入 Gitee 仓库。 ### 方式三:Netlify 1. **安装 Netlify CLI** ```bash npm i -g netlify-cli ``` 2. **部署** ```bash netlify deploy --prod --dir=dist ``` 或访问 [Netlify](https://netlify.com) 并连接 Gitee 仓库。 ### 方式四:手动部署 将 `dist` 目录中的文件上传到任何静态网站托管服务即可。 ## 📖 使用指南 ### 基本操作 1. **上传图片** - 点击顶部 "New Image" 按钮 - 或直接点击画布中央的上传区域 - 支持 JPG、PNG、WEBP 格式 2. **选择宽高比** - 在右侧面板的 "Aspect Ratio" 区域 - 点击预设按钮(Free、1:1、4:3 等) - 选择后裁剪框会自动调整比例 3. **使用固定尺寸** - 在 "Output Dimensions" 区域 - 选择预设尺寸(如 IG Post) - 或输入自定义宽度和高度 4. **调整图片** - **缩放**: 使用 "Zoom" 滑块(0.2x - 4x) - **旋转**: 使用 "Rotation" 滑块(0° - 360°) - **移动**: 直接拖拽图片调整位置 5. **导出图片** - 选择导出格式(PNG/JPEG/WEBP) - 调整质量(仅 JPEG/WEBP) - 点击顶部 "Export" 按钮下载 ### 高级技巧 - **精确裁剪**: 使用固定尺寸模式,确保输出尺寸完全符合要求 - **保持质量**: PNG 格式无损,适合需要高质量的场景 - **文件大小**: JPEG/WEBP 格式可调节质量,平衡文件大小和画质 - **批量处理**: 可以连续上传多张图片进行处理 ## 📁 项目结构 ``` procrop-studio/ ├── components/ │ ├── ImageCropper.tsx # 图片裁剪组件 │ └── ui/ │ └── Slider.tsx # 滑块组件 ├── utils/ │ └── canvasUtils.ts # Canvas 处理工具函数 ├── App.tsx # 主应用组件 ├── index.tsx # 应用入口 ├── types.ts # TypeScript 类型定义 ├── vite.config.ts # Vite 配置 ├── tsconfig.json # TypeScript 配置 └── package.json # 项目依赖配置 ``` ## 🎯 核心组件说明 ### ImageCropper 图片裁剪核心组件,封装了 `react-easy-crop` 的功能,支持: - 宽高比控制 - 缩放和旋转 - 固定尺寸模式 - 裁剪区域像素坐标计算 ### canvasUtils Canvas 处理工具函数,负责: - 图片加载和创建 - 旋转角度计算 - 裁剪区域提取 - 尺寸调整和缩放 - 格式转换和质量控制 ## 🔧 配置说明 ### Vite 配置 - **端口**: 3000 - **主机**: 0.0.0.0(允许网络访问) - **路径别名**: `@` 指向项目根目录 ### 环境变量 项目支持环境变量配置(当前版本未使用 API,但已预留配置): - `GEMINI_API_KEY` - Gemini API 密钥(如需要) ## 🌟 特色亮点 1. **零依赖裁剪** - 所有图片处理在浏览器端完成,无需服务器 2. **高性能** - 使用 Canvas API,处理速度快 3. **类型安全** - 完整的 TypeScript 类型定义 4. **用户体验** - 流畅的交互,即时的视觉反馈 5. **代码质量** - 组件化设计,易于维护和扩展 ## 📝 开发计划 - [ ] 添加图片翻转功能(水平/垂直) - [ ] 支持批量裁剪 - [ ] 添加更多社交媒体预设尺寸 - [ ] 支持拖拽排序预设 - [ ] 添加撤销/重做功能 - [ ] 支持快捷键操作 - [ ] 添加图片滤镜效果 ## 📄 许可证 MIT License ## 🙏 致谢 - [react-easy-crop](https://github.com/ricardo-ch/react-easy-crop) - 优秀的图片裁剪库 - [lucide-react](https://lucide.dev/) - 精美的图标库 - [Vite](https://vitejs.dev/) - 快速的构建工具 ---
Made with ❤️ using React + TypeScript + Vite