如何使用node.js从rgb值的Uint8Array数组生成png或jpg图像



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

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

有人能告诉我如何实现上述目标吗?理想情况下,我希望输出为jpg或png图像。

jpeg js是node.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 );

最新更新