保存像素,导致Node.js上的图像受损和不饱和
我使用save-pixels和get-pixels npm模块从DataURL获取一个ndarray,并保存像素以将图像ndarray转换为DataURL。 但是我在使用save-image来创buildDataURL时遇到了一些问题。 我正确地做这个? 有一个更好的方法吗?
这是我正在使用的代码:
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不完整。
有关完整的参考资料: http : //github.com/publiclab/image-sequencer/issues/25
callback应该在pipe道上,而不是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()); });