Pindou拼豆工坊

开源 · MIT · npm

@wangdandan810012/bead-core

蛋蛋拼豆核心算法库 — Pindou 网页端背后的图片转图纸引擎。将 RGBA 像素映射为拼豆色号网格,供开发者集成到自己的应用。

安装

npm install @wangdandan810012/bead-core

包页面: https://www.npmjs.com/package/@wangdandan810012/bead-core

零运行时依赖

不绑定 Vue / Canvas,Node 与浏览器均可使用

CIEDE2000 配色

感知色差 ΔE,与主流拼豆工具一致的色板匹配

照片清晰度优化

最近邻降采样 + 可调合并阈值,保留边缘细节

完整流水线

转换 → 合并 → 限色 → 背景标记 → 排除色重映射

处理流水线

prepareSourcePixels
       ↓
runPipeline
  ├─ convertImageToPattern(降采样 + CIEDE2000 配色)
  ├─ mergeSimilarRegions
  ├─ limitGridColors
  ├─ markExternalBackground
  └─ remapExcludedColors

色板数据由调用方传入(支持 MARD、COCO 等多品牌色号映射),库本身不包含 UI,适合 Web、小程序或 Node 批处理场景。

主要 API

导出说明
runPipeline主流水线入口
convertImageToPattern图片 → 拼豆网格
prepareSourcePixels亮度 / 对比度 / 锐化 / 降噪
mergeSimilarRegions相似色区域合并
markExternalBackground贴边背景洪水填充
computeColorStats色号用量统计

快速示例

import { prepareSourcePixels, runPipeline } from '@wangdandan810012/bead-core'

const adjusted = prepareSourcePixels(pixels, width, height, imageAdjust, photoOptimize)
const { grid } = runPipeline(adjusted, width, height, {
  gridWidth: 100,
  mode: 'average',
  mergeThreshold: 0,
  maxColors: 0,
  palette,
  backgroundPaletteIds: ['neutral-001'],
  excludedPaletteIds: [],
})

与 Pindou 网页的关系

  • 本站在浏览器中调用同一套算法完成「上传 → 生成 → 精修 → 导出」。
  • 算法库独立发布,便于其他开发者复用或二次集成。
  • 详细算法说明见 GitHub 仓库 docs/algorithms/ 目录。
  • 许可证:MIT,Copyright © 蛋蛋。