我正在使用save-pixels和get-pixels npm模块从DataURL获取ndarray并保存像素以将图像ndarray转换为DataURL。但是在使用save-image制作DataURL时我遇到了一些问题。我这样做了吗?有更好的方法吗?
这是我正在使用的代码:
var buffer = require('fs').createWriteStream('output.txt');
var enc = require('base64-stream').encode();
savePixels(pixels, 'png').on('end', function() {
//Writes a DataURL to output.txt
buffer.write("data:image/png;base64,"+enc.read().toString());
}).pipe(enc);
我得到的问题:图像变得不饱和,PNG图像的DataURL不完整。
答案 0 :(得分:1)
回调应该在管道而不是savePixels上。这导致了不完整的图像。 所以代码应该是这样的:
var buffer = require('fs').createWriteStream('output.txt');
var enc = require('base64-stream').encode();
savePixels(pixels, 'png').pipe(enc).on('end', function() {
//Writes a DataURL to output.txt
buffer.write("data:image/png;base64,"+enc.read().toString());
});