由 pngjs 为 nodejs 生成的 PNG 噪声
Noise in PNG produced by pngjs for nodejs
我想使用 pngjs v3.3.0 for nodejs 将 PNG spritesheet 分割成 sprites。这给我一些生成的精灵带来了意想不到的嘈杂背景。然后我尝试了简单的脚本,它只创建空的透明 PNG,然后将其写入文件:
var fs = require('fs');
var PNG = require('pngjs').PNG;
var dstBuffer = new PNG({ width:50, height:50 });
dstBuffer.pack().pipe(fs.createWriteStream("empty.png"));
并且还创建了带有嘈杂背景的空 PNG。我还尝试不使用透明度 (colorType:2),然后我得到了带有噪点的白色 PNG。每次我使用脚本时,噪音都不同。 This is how it looks like。尝试了同步和异步方法。
我运行在cmd中简单的脚本如下:node pngjs
。并且 pngjs 仅使用 npm 安装:npm install pngjs
。所以我需要避免这种背景噪音。
数据需要初始化。这可以像这样实现(另见https://github.com/lukeapage/pngjs/blob/master/examples/newfile.js):
var fs = require('fs');
var PNG = require('pngjs').PNG;
var dstBuffer = new PNG({ width:50, height:50 });
for (var y = 0; y < dstBuffer.height; y++) {
for (var x = 0; x < dstBuffer.width; x++) {
var idx = (dstBuffer.width * y + x) << 2;
dstBuffer.data[idx] = 255;
dstBuffer.data[idx + 1] = 255;
dstBuffer.data[idx + 2] = 255;
dstBuffer.data[idx + 3] = 255;
}
}
dstBuffer.pack().pipe(fs.createWriteStream("empty.png"));
我想使用 pngjs v3.3.0 for nodejs 将 PNG spritesheet 分割成 sprites。这给我一些生成的精灵带来了意想不到的嘈杂背景。然后我尝试了简单的脚本,它只创建空的透明 PNG,然后将其写入文件:
var fs = require('fs');
var PNG = require('pngjs').PNG;
var dstBuffer = new PNG({ width:50, height:50 });
dstBuffer.pack().pipe(fs.createWriteStream("empty.png"));
并且还创建了带有嘈杂背景的空 PNG。我还尝试不使用透明度 (colorType:2),然后我得到了带有噪点的白色 PNG。每次我使用脚本时,噪音都不同。 This is how it looks like。尝试了同步和异步方法。
我运行在cmd中简单的脚本如下:node pngjs
。并且 pngjs 仅使用 npm 安装:npm install pngjs
。所以我需要避免这种背景噪音。
数据需要初始化。这可以像这样实现(另见https://github.com/lukeapage/pngjs/blob/master/examples/newfile.js):
var fs = require('fs');
var PNG = require('pngjs').PNG;
var dstBuffer = new PNG({ width:50, height:50 });
for (var y = 0; y < dstBuffer.height; y++) {
for (var x = 0; x < dstBuffer.width; x++) {
var idx = (dstBuffer.width * y + x) << 2;
dstBuffer.data[idx] = 255;
dstBuffer.data[idx + 1] = 255;
dstBuffer.data[idx + 2] = 255;
dstBuffer.data[idx + 3] = 255;
}
}
dstBuffer.pack().pipe(fs.createWriteStream("empty.png"));