RGB数组可在Node.js中缓冲图像 [英] RGB array to buffer image in Node.js

查看:67
本文介绍了RGB数组可在Node.js中缓冲图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个由RGB对象(像素颜色)组成的数组.示例:

I have an array consists of the RGB objects (pixel color). Example:

[
    {r: 40, g: 143, b: 54},
    {r: 86, g: 193, b: 87},
    ...
]

我有图像分辨率.示例:

And I have image resolution. Example:

{
    width: 400,
    height: 300
}

如何将此数组转换为Node.js中的Buffer以在浏览器中显示?

How to convert this array to the Buffer in Node.js to display in a browser?

推荐答案

  1. 将RGB对象数组转换为字节数组.

  1. Convert array of RGB objects to array of bytes.

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)))

  • 将结果字节编码为浏览器支持的图像格式.

  • Encode resulting bytes to a browser-supported image format.

    var png = new Png(buf, width, height);
    png.encode();
    

  • 将生成的图像发送给用户(以下任意一项).
    • 将base64中的图像嵌入HTML.
    • 另存为png在光盘上并获取要使用的URL.
    • 作为动态响应发送到某个URL上的HTTP请求.
    • 这篇关于RGB数组可在Node.js中缓冲图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆