Perler Beads Generator:这款拼豆图纸生成器,真的够用了
最近试了不少拼豆网站,总感觉差点意思:
大多数工具的功能不全,且图片转像素的效果一般般——生成的颜色太碎或不准,拼起来很累;如果想手动修一下图,又缺少顺手、全面的编辑工具。
所以我做了一个拼豆网页:Perler Beads Generator。
不仅支持“导入图片生成图纸”,更像是一个完整的拼豆图纸工作台:可以微调生成效果,也可以手动画图、改图、实时预览 3D 效果、统计用量、导出清晰可打印的图纸。
网站从拼豆人的实际需求出发,反复打磨,力求功能完整、操作顺手。
在线体验:
https://jett-wu.github.io/Perler_Beads_Generator/
GitHub:
https://github.com/Jett-Wu/Perler_Beads_Generator

图中展示写实风格的一键生成效果(未经任何微调和修改)
一、为什么做这个工具
我自己在找拼豆图纸工具时,主要遇到以下问题:
- 图片转图纸后:颜色太碎,拼起来很累,且不方便修改;
- 色号不全;
- 导出图纸不够清晰,打印效果差;
- 用量统计、图层、调色等功能不完整;
- 想临摹图片时,参考图和画布配合不够顺手;
- 生成后想手动修图,但工具不够好用。
因此,本工具从拼豆人的实际需求出发,反复打磨,力求功能完整、操作顺手。
二、图片生成拼豆图纸
工具支持上传 PNG、JPG、WebP 图片,自动生成拼豆图纸。
目前有两种生成风格:
- 卡通风格:适合头像、表情包、线稿、动漫图;
- 写实风格:适合真实照片,保留更多颜色层次。
这里没有简单地把图片缩小后取单个像素,而是按拼豆格子对应的图片区域进行采样。
也就是说,每个拼豆格都会参考原图中对应的一小块区域,再决定最终使用哪个色号。这样边缘、主色块和大面积颜色会更稳定,不会因为某一个像素的颜色偏差导致整张图变得很碎。

三、MARD 色卡匹配
目前内置了 MARD 色卡:
- MARD 基础版 221 色;
- MARD 完整版 291 色。
生成图纸时,会把图片颜色匹配到 MARD 色号。
调色盘也支持按色号分组筛选,并且有最近使用颜色,方便频繁切换常用颜色。
四、像绘图软件一样编辑
左侧工具栏做成了类似绘图软件的操作方式,常用编辑功能基本都放进去了:
- 画笔:在画布上直接绘制拼豆。
- 橡皮:擦除指定位置的拼豆,可调整橡皮大小。
- 填充:快速填充连续区域。
- 消除:可消除同色连续块、所有同色或连续块。
- 换色:把图纸中的某一种颜色整体替换成另一种颜色。
- 吸管:从画布中吸取已有颜色。
- 移动:移动整张图案,或移动局部连续图案。
- 复制 / 粘贴:复制图案并粘贴到别的位置,支持跨图层。
- 镜像:对当前图案进行水平或垂直镜像。
- 形状:插入直线、矩形、圆形、三角形、箭头等基础图形。
- 文字:插入文字、数字、字母或符号,并可调整高度、间距和排列方向。
- 拖动画布:移动画布视角,方便查看和编辑大尺寸图纸。
五、多图层编辑
拼豆作品不一定只有一层。
有些作品会做叠层、镂空、局部装饰,或者把不同部分拆开制作。图层功能就是为这种场景准备的。
目前支持:
- 新建图层
- 删除图层
- 复制图层
- 拖拽排序
- 显示 / 隐藏
- 锁定
- 重命名
- 只看当前图层
- 是否计入用量
每个图层都是独立的,可以单独编辑,也可以叠加查看。

六、参考图临摹
除了自动生成图纸,也可以单独上传参考图作为底稿。
参考图支持:
- 显示 / 隐藏
- 透明度调整
- 显示在拼豆上方或下方
- 拖动 / 缩放

这个功能很适合手动画图。
比如自动生成之后,觉得某些细节不满意,就可以打开参考图,一边看原图,一边手动修。
七、3D 预览
左侧有一个实时 3D 预览区域,可以大致查看拼豆完成后的效果。
3D 预览会跟随当前图纸变化,也支持放大查看。
豆子形状可以在圆形和方形之间切换。
八、用量统计
右侧有用量统计面板,会自动按颜色统计:
- 色号
- 颗数
- 预计包数
每包数量可以自己设置,默认按 500 颗一包计算。
如果有多个图层,也可以选择统计全部图层、当前图层,或者指定图层。

九、当前图层调整
有时图纸生成后,整体颜色可能偏暗、偏灰,或者颜色数量太多。
所以我加了一个“调整”面板,只作用于当前图层。
支持:
- 亮度:整体调亮或调暗当前图层。
- 对比度:增强或降低明暗反差。
- 饱和度:调整颜色鲜艳程度。
- 色温:让画面偏暖或偏冷。
- 色相:整体偏移颜色方向。
- 反色:将当前图层颜色反转。
- 灰阶:把当前图层转换为灰度效果。
- 黑白:把当前图层转换为黑白高对比效果。
- 颜色整理:合并相近颜色,减少不必要的碎色。
- 色数上限:限制当前图层最多使用的颜色数量。

这些调整会直接反映到画布上,配合撤销功能使用会比较安全。
十、导出图纸
目前支持两种导出格式:
- PNG
导出时可以设置:
- 按画布尺寸/图案尺寸导出
- 是否显示色号
- 是否显示辅助线
- 作品昵称
- 作者昵称
导出的图纸会包含坐标、辅助线、色号和底部用量清单,适合直接打印。


如果有多个图层,也会按图层分别导出图纸,方便分层制作。
十一、导出用量和编辑记录
除了图纸,也可以导出用量清单和编辑记录。
用量清单会导出为 Excel。
如果项目里有多个图层,会包含总数和各个图层的统计,方便整理材料。
编辑记录会导出为 JSON。
下次可以重新导入,继续编辑之前没做完的图纸。
十二、技术栈
项目主要使用:
- React
- TypeScript
- Canvas API
- Three.js
- Vite
部署方式是 GitHub Pages,构建后自动发布。
本地运行:
npm install
npm run dev
构建:
npm run build
十三、项目结构
核心文件大致如下:
src/
App.tsx # 页面布局、状态和主要交互
WorkspaceCanvas.tsx # 2D 画布、工具、参考图、移动复制等逻辑
ThreePreview.tsx # 3D 预览
imageToBeads.ts # 图片转拼豆图纸算法
palette.ts # MARD 色卡和颜色匹配
project.ts # 项目数据、图层、自动保存
exporters.ts # PNG / PDF / Excel / JSON 导出
usage.ts # 用量统计
styles.css # 页面样式
Github
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)