@madeitpx / pixelart
Node.js绑定 madeitpx. 转换 RGBA8像素缓冲到具有有限调色板的输出网格。
npm install @madeitpx/pixelart
该包为支持的平台安装一个本机库:Windows x64和Windows x64
ARM64, Linux x64和ARM64 (glibc), macOS x64和ARM64。匹配的
平台包是一个可选的依赖项,会被自动选中。
对于本地构建或自定义位置,请忽略 libraryPath 在创建
转换器或机组 MADEITPX_LIBRARY_PATH.
const { createConverter } = require('@madeitpx/pixelart');
const convert = createConverter();
const rgba = Buffer.from([
255, 0, 0, 255,
0, 255, 0, 255,
0, 0, 255, 255,
255, 255, 255, 255
]);
const result = convert(rgba, {
inputWidth: 2,
inputHeight: 2,
targetWidth: 1,
targetHeight: 1
});
结果是 Buffer 包含紧密包装的RGBA8像素,除透明外不透明
像素预设可以保留的单元格(见下文)。输入行可以通过设置包括填充
inputStride. 转换选项包括 preset, paletteColors, backgroundRgb, sampling,
clusterCleanup 和 pixelart. 默认值是平衡调色板,最接近采样,黑色
后台,并启用集群清理。
Pixelart预设
preset: 'pixelart' 使用版本2的像素-艺术管道:它恢复像素的真实网格
艺术品按比例放大,并减少平滑的艺术品,保留轮廓。 pixelart 拥有
详细的设置;您遗漏的任何设置都将保留库的默认设置。
const out = convert(rgba, {
inputWidth: 1024,
inputHeight: 1536,
targetWidth: 256,
targetHeight: 384,
preset: 'pixelart',
pixelart: { mode: 'illustration', paletteMax: 32, minRegion: 4 }
});
const defaults = convert.pixelartDefaults();
const original = convert(rgba, { ...settings, preset: 'pixelart', pixelart: { version: 1 } });
convert.pixelartDefaults() 返回每个默认值,因此设置面板可以通过
从这里开始读。 version: 1 运行原始管道。设置: version, mode
(auto, grid, illustration), gridFit, gridSearchPermille, sampleInsetPercent,
colorTolerance, paletteMax, refineIterations, inkPercent, minRegion, alphaThreshold
和 keepTransparency. 与 keepTransparency (默认)源中透明的单元格
得到0。看到 pixelart文档.
浏览器和捆绑器
该包也可以在没有本机库的情况下在浏览器中运行。捆绑器(Vite, webpack, Astro)
选项中选择WebAssembly条目 browser 出口条件;及 createConverter 是
异步:
import { createConverter } from '@madeitpx/pixelart';
const convert = await createConverter();
const image = ctx.getImageData(0, 0, width, height);
const out = convert(image.data, {
inputWidth: width,
inputHeight: height,
targetWidth: 128,
targetHeight: 128,
preset: 'pixelart'
});
ctx2.putImageData(new ImageData(new Uint8ClampedArray(out), 128, 128), 0, 0);
加载模块 wasm/madeitpx.wasm 包裹旁边。自己托管,不需要
createConverter({ wasm: url }) 哪里 url 是URL, Response, ArrayBuffer 或者
WebAssembly.Module; @madeitpx/pixelart/madeitpx.wasm 解析为绑定器的文件。
需要Node.js 18或更新版本。