RGB 数组用于在 Node.js 中缓冲图像

RGB array to buffer image in Node.js

本文关键字:缓冲 图像 js Node 数组 用于 RGB      更新时间:2023-09-26

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

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

我有图像分辨率。例:

{
    width: 400,
    height: 300
}

如何将此数组转换为节点中的缓冲区.js以在浏览器中显示?

  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)))
    
  2. 将生成的字节编码为浏览器支持的图像格式。

    var png = new Png(buf, width, height);
    png.encode();
    
  3. 将生成的图像发送给用户(以下任何一项(。
    • 将 base64 中的图像嵌入到 HTML 中。
    • 另存为光盘上的 png 并获取要使用的 URL。
    • 作为对特定 URL 的 HTTP 请求的动态响应发送。