如何将RGBA原始缓冲区转换为Javascript中的PNG文件?

在Node.js中,我想从原始RGBA像素值数组中压缩保存一个PNG图像文件。

for (var x = 0; x < pixelSize; x++) for (var y = 0; y < pixelSize; y++) { const offset = (y * pixelSize + x) * 4 // RGBA = 4 bytes buffer[offset ] = x // R buffer[offset + 1] = y // G buffer[offset + 2] = 0 // B buffer[offset + 3] = 255 // Alpha } 

如何将其转换为磁盘上的PNG图像文件?

以jimp为例:

 var Jimp = require('jimp') const pixelSize = 256 var image = new Jimp(pixelSize, pixelSize, function (err, image) { let buffer = image.bitmap.data for (var x = 0; x < pixelSize; x++) { for (var y = 0; y < pixelSize; y++) { const offset = (y * pixelSize + x) * 4 // RGBA = 4 bytes buffer[offset ] = x // R buffer[offset + 1] = y // G buffer[offset + 2] = 0 // B buffer[offset + 3] = 255 // Alpha } } }) image.write('image.png')