我有一个由RGB对象组成的数组(像素颜色)。例如:
[
{r: 40, g: 143, b: 54},
{r: 86, g: 193, b: 87},
...
]
我有图像分辨率。例如:
{
width: 400,
height: 300
}
如何将此数组转换为Node.js中的Buffer以在浏览器中显示?
答案 0 :(得分:1)
将RGB对象数组转换为字节数组。
function RGBtoArr(rgb)
{
return [rgb.r, rgb.g, rgb.b];
}
function flattenArray(arr)
{
return [].concat.apply([], arr);
}
var buf = new Buffer(flattenArray(arr.map(RGBtoArr)))
将结果字节编码为浏览器支持的图像格式。
var png = new Png(buf, width, height);
png.encode();