238 lines
8.9 KiB
Plaintext
238 lines
8.9 KiB
Plaintext
---
|
||
description:
|
||
globs:
|
||
alwaysApply: true
|
||
---
|
||
# 拼豆图纸生成器微信小程序 PRD
|
||
|
||
## 1. 产品概述
|
||
|
||
### 1.1 产品定位
|
||
基于统一画布工作台理念的拼豆制作工具,为拼豆爱好者提供从图像处理到成品制作的一站式解决方案。
|
||
|
||
### 1.2 核心价值
|
||
- **一体化体验**:统一画布承载所有操作,无缝切换不同工作模式
|
||
- **智能色板**:自动适配不同店家色号体系,简化用户选择
|
||
- **渐进式引导**:从新手友好的预览模式到专业的编辑模式,再到专注的制作模式
|
||
|
||
### 1.3 目标用户
|
||
- 拼豆制作爱好者(初学者到专业玩家)
|
||
- 需要定制图案的用户
|
||
- 希望数字化管理拼豆项目的用户
|
||
|
||
## 2. 产品架构
|
||
|
||
### 2.1 整体流程
|
||
```
|
||
首页导入按钮 → 图像转像素画(预览模式) → 像素画编辑(编辑模式) → 专心拼豆(拼豆模式) → 完成分享
|
||
```
|
||
|
||
### 2.2 核心模块关系
|
||
- **统一色板模块**:为所有模块提供颜色数据和店家适配,以及通过勾选的自定义色板
|
||
- **统一画布模块**:承载所有视觉交互和模式切换
|
||
- **数据管理模块**:处理图像处理、存储和同步
|
||
|
||
## 3. 功能模块详述
|
||
|
||
### 3.1 首页模块
|
||
|
||
#### 3.1.1 功能概述
|
||
作为用户进入小程序的第一个接触点,提供简洁的功能入口和项目管理。
|
||
|
||
#### 3.1.2 主要功能(两个按钮)
|
||
- **快速开始**:一键创建新项目(图片上传/拍照)
|
||
- **色板设置**:全局店家色号体系选择
|
||
|
||
#### 3.1.3 界面布局
|
||
- 顶部(占据一半):品牌标识
|
||
- 中部(大):点击导入图片或者 csv 文件
|
||
- 下部(弱):点击进入色板编辑(编辑后的色板储存在本地)
|
||
|
||
### 3.2 统一色板模块
|
||
|
||
#### 3.2.1 设计理念
|
||
基于 `colorSystemMapping.json` 构建的智能色板系统,对用户完全透明化 hex 值,只显示当前选择店家的色号命名。
|
||
|
||
#### 3.2.2 核心功能
|
||
|
||
**3.2.2.1 色板数据管理**
|
||
- 维护 291 个标准 hex 颜色
|
||
- 支持 5 个店家色号体系:MARD、COCO、漫漫、盼盼、咪小窝
|
||
- 动态映射:同一颜色在不同店家显示不同色号
|
||
- 全局色号体系切换:用户选择店家后,整个小程序所有颜色显示自动更新
|
||
|
||
**3.2.2.2 自定义色板机制**
|
||
- 用户可以自定义自己想要的色板(自己的拼豆颜色种类)
|
||
|
||
**3.2.2.3 交互设计**
|
||
- **预览模式**:色板仅用于信息展示,点击颜色显示详细信息
|
||
- **编辑模式**:色板作为画笔工具,支持颜色选择、自定义色板
|
||
- **拼豆模式**:色板按使用顺序和重要性排序,突出当前需要的颜色
|
||
|
||
#### 3.2.3 技术实现要点
|
||
- 建立 hex 到店家色号的单向映射索引
|
||
- 实现响应式色板组件,支持不同尺寸屏幕
|
||
- 色彩空间转换算法,确保颜色显示一致性
|
||
|
||
### 3.3 统一画布模块
|
||
|
||
#### 3.3.1 设计理念
|
||
单一画布承载所有视觉交互,通过模式切换实现不同功能状态,提供连贯的用户体验。
|
||
|
||
#### 3.3.2 核心功能
|
||
|
||
**3.3.2.1 基础画布能力**
|
||
- **自适应尺寸**:根据像素网格自动计算画布大小,初始化的时候最长边占满屏幕
|
||
- **手势支持**:双指捏合缩放、单指拖拽平移
|
||
- **性能优化**:大尺寸网格的虚拟化渲染,保证流畅性
|
||
- **坐标系统**:统一的网格坐标系,支持精确的像素级操作
|
||
|
||
**3.3.2.2 多模式状态管理**
|
||
|
||
**预览模式(Mode 1)**
|
||
- **视觉状态**:显示完整像素化结果,网格线清晰可见
|
||
- **交互行为**:
|
||
- 点击:显示该位置颜色信息弹窗(店家色号 + 颜色预览)
|
||
- 长按:显示周围区域的颜色分布热力图
|
||
- 双击:快速放大到该区域
|
||
- **UI 覆盖层**:网格坐标标识、色彩统计信息
|
||
|
||
**编辑模式(Mode 2)**
|
||
- **视觉状态**:突出显示可编辑区域,当前工具状态指示
|
||
- **交互行为**:
|
||
- 单击:使用当前画笔颜色填充像素
|
||
- 长按:激活连续绘制模式
|
||
- 双指点击:吸管工具,获取该位置颜色
|
||
- **工具栏集成**:画笔选择、橡皮擦、填充工具、撤销重做
|
||
- **实时预览**:编辑操作的即时视觉反馈
|
||
|
||
**拼豆模式(Mode 3)**
|
||
- **视觉状态**:游戏化界面,突出显示当前任务区域
|
||
- **交互行为**:
|
||
- 点击:标记完成该像素
|
||
- 长按:查看该区域的详细制作指导
|
||
- **进度系统**:完成度可视化、区域引导、成就反馈
|
||
- **辅助功能**:放大镜工具、颜色高亮、完成动画
|
||
|
||
**3.3.2.3 模式切换机制**
|
||
- **无缝转换**:保持画布视口位置和缩放比例
|
||
- **状态持久化**:每个模式的操作历史独立保存
|
||
- **上下文保护**:切换模式时保护用户当前操作进度
|
||
|
||
#### 3.3.3 技术架构
|
||
|
||
**3.3.3.1 渲染引擎**
|
||
- 基于微信小程序 Canvas 2D API
|
||
- 分层渲染:背景层、像素层、交互层、UI 层
|
||
- 局部刷新策略,仅重绘变化区域
|
||
|
||
**3.3.3.2 状态管理**
|
||
```typescript
|
||
interface CanvasState {
|
||
mode: 'preview' | 'edit' | 'create'
|
||
viewport: { x: number, y: number, scale: number }
|
||
pixelData: MappedPixel[][]
|
||
currentTool: ToolType
|
||
operationHistory: Operation[]
|
||
}
|
||
```
|
||
|
||
### 3.4 图像转像素画模块(预览模式)
|
||
|
||
#### 3.4.1 功能概述
|
||
将用户上传的图像智能转换为适合拼豆制作的像素画,并提供预览和调整功能。
|
||
|
||
#### 3.4.2 图像处理流程
|
||
|
||
**3.4.2.1 图像预处理**
|
||
- **尺寸标准化**:自动调整为横轴 100 像素,纵轴按比例计算
|
||
- **色彩优化**:色彩空间转换、对比度增强、降噪处理
|
||
- **边缘处理**:智能识别和保护重要边缘信息
|
||
|
||
**3.4.2.2 像素化算法**
|
||
- **卡通模式**:基于主导色的像素化(保持色块纯净)
|
||
- **真实模式**:基于平均色的像素化(保持色彩过渡)
|
||
- **智能色彩映射**:将像素色彩映射到最接近的拼豆颜色
|
||
|
||
**3.4.2.3 后处理优化**
|
||
- **色彩合并**:相似颜色自动合并,减少色彩数量
|
||
- **区域优化**:小面积杂色自动清理
|
||
- **边缘锐化**:重要边缘的对比度增强
|
||
|
||
#### 3.4.3 交互功能
|
||
- **参数调节**:实时调整像素化精度、色彩合并阈值
|
||
- **区域预览**:支持局部放大查看细节效果
|
||
- **色彩统计**:显示使用的颜色数量和分布
|
||
|
||
### 3.5 像素画编辑模块
|
||
|
||
#### 3.5.1 功能概述
|
||
提供专业的像素画编辑能力,允许用户精细调整转换结果。
|
||
|
||
#### 3.5.2 编辑工具集
|
||
|
||
**3.5.2.1 基础绘制工具**
|
||
- **画笔工具**:支持不同大小的方形画笔
|
||
- **橡皮擦**:删除指定区域的像素
|
||
- **填充工具**:快速填充连通区域
|
||
- **吸管工具**:快速获取画布上的颜色
|
||
|
||
**3.5.2.2 高级编辑功能**
|
||
- **区域选择**:矩形、自由形状选择工具
|
||
- **批量替换**:将特定颜色批量替换为另一种颜色
|
||
- **图层管理**:支持多图层编辑(背景层、前景层等)
|
||
- **对称绘制**:支持水平、垂直对称绘制模式
|
||
|
||
**3.5.2.3 辅助功能**
|
||
- **网格对齐**:自动对齐到像素网格
|
||
- **颜色建议**:基于周围颜色推荐最适合的颜色
|
||
- **撤销重做**:支持多步操作的撤销和重做
|
||
- **实时预览**:编辑过程中的实时效果预览
|
||
|
||
#### 3.5.3 用户体验优化
|
||
- **手势识别**:支持常用编辑手势(缩放、拖拽、点击)
|
||
- **工具切换**:快速访问常用工具的浮动工具栏
|
||
- **操作反馈**:每个操作都有清晰的视觉反馈
|
||
|
||
### 3.6 专心拼豆模块
|
||
|
||
#### 3.6.1 功能概述
|
||
游戏化的拼豆制作指导系统,帮助用户有序完成拼豆作品。
|
||
|
||
#### 3.6.2 核心功能
|
||
|
||
**3.6.2.1 智能引导系统**
|
||
- **制作顺序优化**:基于颜色分布和难易度推荐制作顺序
|
||
- **区域推荐**:
|
||
- 最近优先:推荐距离当前位置最近的未完成区域
|
||
- 大块优先:优先推荐大色块区域,提高效率
|
||
- 边缘优先:从外围向内部制作,符合拼豆制作习惯
|
||
|
||
**3.6.2.2 进度管理**
|
||
- **颜色进度跟踪**:每种颜色的完成进度可视化
|
||
- **区域完成标记**:点击标记已完成的像素区域
|
||
- **总体进度展示**:整体完成百分比和剩余工作量
|
||
|
||
**3.6.2.3 辅助工具**
|
||
- **放大镜功能**:支持选择特定区域进行放大操作
|
||
- **颜色高亮**:突出显示当前工作颜色的所有位置
|
||
- **完成动画**:颜色完成时的庆祝动效
|
||
|
||
#### 3.6.3 用户体验设计
|
||
|
||
**3.6.3.1 游戏化元素**
|
||
- **成就系统**:设置里程碑奖励(完成第一个颜色、完成 50% 等)
|
||
- **进度条动画**:平滑的进度变化动画
|
||
- **完成庆祝**:作品完成时的特殊庆祝效果
|
||
|
||
**3.6.3.2 实用功能**
|
||
- **时间记录**:记录制作时间,支持暂停和继续
|
||
- **拍照记录**:支持拍照记录制作进度
|
||
- **分享功能**:生成完成图片,支持分享到社交平台
|
||
|
||
### 3.7 数据管理模块
|
||
|
||
#### 3.7.1 本地存储
|
||
- **项目文件**:完整的像素画数据、编辑历史、进度信息
|
||
- **用户设置**:色板偏好、操作习惯、界面配置
|
||
- **缓存管理**:图像处理结果缓存、色板数据缓存 |