把一张图片变成拼豆(拼拼豆豆 / Perler Beads)图纸:自由选择行×列(16×16、29×29、32×32,一直到 1024×1024), 自动把每个格子匹配成最接近的拼豆颜色,并统计每种颜色需要多少颗豆子。
界面是包豪斯(Bauhaus)风格:三原色 + 黑白、直角直线、方形色块按钮、粗细对比排版。
技术上是 Python + Tkinter + Pillow,核心算法(缩放、颜色匹配、Floyd–Steinberg 抖动、去背景)与 界面绘制分离,所以能跑无界面的自检脚本。
它能做什么
| 能力 | 说明 |
|---|---|
| 尺寸任选 | 4×4 ~ 1024×1024(最大约 105 万颗豆子),也支持长方形图案 |
| 颜色匹配 | 内置标准 50 色 / 精简 32 色 / 极简 16 色三套色卡,按感知加权距离取最近色 |
| 颜色抖动 | 标准 Floyd–Steinberg 误差扩散(顺序扫描,无横向条纹),渐变过渡自然 |
| 背景处理 | 透明区域自动留空;纯色背景可从四边泛洪填充一键去掉,容差可调 |
| 智能裁剪 | 自动去掉四周留白;长方形图片可选「完整放入 / 裁切填满 / 拉伸」 |
| 格式支持 | JPG / PNG / WEBP / BMP / GIF / TIFF / ICO 等 40+ 种,手机竖拍照片按 EXIF 自动转正 |
| 导出齐全 | 圆豆图纸 PNG、矢量 SVG、成品效果图、挑豆清单 TXT、颗数 CSV、格子编号 CSV、可打印网页 |
| 实时预览 | 鼠标悬停查看每格坐标与色号;适应窗口 / 1× ~ 5× 缩放 |
下载即用
启动.bat 即可运行
PerlerBeadStudio.exe
直接双击运行。首次启动会自解压到临时目录,约等 3~8 秒
下载后可用 SHA-256 对一下,确认拿到的是原封不动的那一份:校验和清单。
版本怎么选:推荐下第一个 full.zip——它自带 Python 运行时,解压就能跑,也不依赖网络。
exe 单文件更省事但每次启动要自解压、稍慢,且需要从 GitHub 下载。两个版本功能完全一样。
📦 本站提供的
full.zip是精简便携版:功能与官方包完全一致(已通过自带自检), 只是去掉了工具用不到的大型依赖库,体积更小、解压更快。 官方完整版(含全部依赖,49.4 MB)见 GitHub Releases。
这个软件开源免费,不收取任何费用。首次启动会弹出这条声明,勾选「不再显示」后不再打扰。
想直接从 GitHub 拿文件、或看历史版本:Releases
从源码运行(开发者)
git clone https://github.com/leerogerstheman/perler-bead-studio.git
cd perler-bead-studio
pip install pillow
python studio.py
也可以直接双击 启动.bat,它会自动寻找电脑上的 Python 环境并检查依赖
(会跳过微软商店的占位程序)。找不到可用环境时会打印中文安装指引,而不是闪退。
打包
构建EXE.bat :: 打包成单个 exe,需要先 pip install pyinstaller
powershell -ExecutionPolicy Bypass -File deploy_runtime.ps1 :: 生成免安装完整包
使用方法
基本流程
- 点左侧「浏览…」选一张图片,或点「示例图片」先试玩
- 用「常用尺寸」下拉框或「列 / 行」输入框选择格子数(4 ~ 1024)
- 右侧实时显示拼豆图纸;鼠标移到图纸上可看到每格的坐标与色号
- 点「导出全部文件」,在
导出\<图片名>_<列>x<行>\里得到全套图纸
长方形图片怎么办(关键选项)
任何长宽比的图都能用,程序按「先等比缩放,再放进格子」处理。第三步有三种做法:
| 选项 | 处理逻辑 | 结果 | 什么时候用 |
|---|---|---|---|
| 完整放入(留白) | 等比缩小到整张图都能放进格子,短边居中留空 | 不裁掉任何内容,空白格不放豆子 | 想保留整张图,或背景本身是画面的一部分 |
| 裁切填满 | 等比放大到铺满格子,长边多出的部分裁掉 | 没有空格,豆子占满整块 | 想让主体尽量大、不要留白(做挂件最常用) |
| 拉伸(会变形) | 直接按 列×行 重采样,不做等比 | 没有空格,但人物会变胖/变瘦 | 一般不建议 |
举例:一张 16:9 横图 → 32×32:
- 完整放入 → 实际占 32 列 × 18 行,上下各留 7 行空格,576 颗豆子
- 裁切填满 → 铺满 32×32,左右各省掉一部分,1024 颗豆子
「裁切位置」有居中 / 靠上(留头部)/ 靠下 / 靠左 / 靠右,只在裁切填满时可用。 竖图转方图时选「靠上」最容易留住人脸。
快捷键与视图
| 操作 | 说明 |
|---|---|
Ctrl+O | 选择图片 |
Ctrl+S | 导出全部 |
F5 | 重新生成 |
Esc | 取消输入焦点 |
| 缩放 | 「适应 / 1× / 2× / 3× / 5×」,1×=12px、2×=24px、3×=36px、5×=60px 每格 |
| 图纸模式 | 「圆豆子图纸」摆豆子用;「成品像素效果」是去掉网格的预览 |
预览会自动降级:超过 26,000 格时,界面预览和导出改用纯色格子画法(百万格也是秒级); 但导出的 PNG 仍是完整圆豆图纸。
怎么选行列数
| 尺寸 | 适合 |
|---|---|
| 16×16 / 24×24 | 钥匙扣、挂件,图案要大要简单 |
| 29×29 / 32×32 | 一块标准小方板,卡通头像、图标最合适 |
| 48×48 / 58×58 | 一块大方板,人物、宠物照片能看出表情 |
| 64×64 ~ 128×128 | 细节丰富,适合照片;豆子用量开始变大 |
| 256×256 ~ 1024×1024 | 「大工程 / 像素画」级别,几百到上百万颗豆子 |
程序会提示「原图每格约多少像素」,每格不足 6 像素时细节会明显丢失,可以考虑加大行列数。 反过来,设了 1024×1024 但原图只有 640×640,图案会偏糊。
导出与挑豆
| 文件 | 用途 |
|---|---|
*_图纸.png | 圆豆子图纸,带行列坐标和 5 格粗网格线,照着摆豆子用 |
*_矢量图纸.svg | 矢量版,放大打印不模糊(超大图自动跳过) |
*_效果图.png | 去掉网格的成品效果 |
*_豆子清单.txt | 挑豆子用的勾选清单,可直接打印 |
*_豆子清单.csv | 每色颗数(Excel 可打开,用于买豆子) |
*_格子编号.csv | 每格的颜色编号表,方便逐行核对 |
*_网页图纸.html | 浏览器打开,带图例和颜色表,可直接打印 |
超大图案会自动跳过 SVG 和 HTML 导出(4 万格以上不导 SVG,40 万格以上不导 HTML), 否则文件会有几十上百 MB、浏览器打不开。
自定义色卡
在 palettes\ 里新建一个 .json:
{
"名称": "我的拼豆色卡",
"colors": [
["白色", "#FFFFFF"],
["大红", "#D62828"],
["宝蓝", "#1B5FC1"]
]
}
保存后重启程序,在界面「色卡」下拉框里就能选到。
性能实测
| 尺寸 | 格数 | 转换耗时 | 开抖动耗时 | 适合 |
|---|---|---|---|---|
| 64 × 64 | 4,096 | 0.01s | 0.02s | 挂件、头像 |
| 256 × 256 | 65,536 | 0.07s | 0.10s | 大幅面作品 |
| 512 × 512 | 262,144 | 0.23s | 0.36s | 接近像素画 |
| 1024 × 1024 | 1,048,576 | 0.94s | 1.51s | 最大档 |
1024×1024 约需 1296 块 29×29 拼豆板,动手前建议先看「豆子清单」估一下成本。
运行环境
只需要 Python 3.10+ 和 Pillow:
pip install pillow
常见问题
图案看着很糊 / 颜色不对? 尽量用清晰、主体大、背景干净的图;勾选「去掉纯色背景」和「自动裁剪留白」;照片类建议开「颜色抖动」。
想要更多渐变层次? 换「标准色卡(50 色)」并打开「颜色抖动」。想让图案更像素风,就选极简 16 色并关掉抖动。
背景被误删了,或没删干净? 调整「容差」滑块:误删就调小,没删干净就调大;也可以取消「去掉纯色背景」。
豆子数量怎么看?
右侧「豆子用量清单」实时显示每色颗数;导出后 *_豆子清单.csv 可按颜色去买豆子。
颜色值为屏幕显示近似值,不同品牌(Hama / Perler / Artkal)同色号会有轻微差异,成品以实物为准。