【问题标题】:How to generate a png or jpg image from a Uint8Array array of rgb values with node.js?如何使用 node.js 从 rgb 值的 Uint8Array 数组生成 png 或 jpg 图像?
【发布时间】:2020-06-19 22:14:24
【问题描述】:

我正在为我的空间模拟器创建程序行星纹理,我最终得到的输出是一个 Uint8Array 的 RGB 值,就像 [255, 255, 255, 100, 200, 50]

使用three.js,您可以使用THREE.DataTexture 类将这些值转换为纹理,但是如果您想要高分辨率纹理,则在运行时生成它们会相当慢,所以我想使用node.js 生成纹理。 js,这样我就可以像使用其他纹理一样使用它们。

谁能阐明我如何实现上述目标?理想情况下,我希望输出是 jpg 或 png 图像。

【问题讨论】:

    标签: javascript node.js three.js


    【解决方案1】:

    jpeg-jsnode.js 的 JavaScript JPEG 编码器和解码器。这允许您通过jpeg.encode()Buffer 对象创建JPG 文件。您可以像这样创建Buffer 实例:

    const data = new Uint16Array(6);
    
    arr[0] = 255;
    arr[1] = 255;
    arr[2] = 255;
    arr[3] = 100;
    arr[4] = 200;
    arr[5] = 50;
    
    const buffer = Buffer.from( data );
    

    【讨论】:

      猜你喜欢
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 2017-09-23
      • 2011-09-02
      • 1970-01-01
      相关资源
      最近更新 更多