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

时间:2017-05-25 09:54:43

标签: javascript node.js

在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图像文件?

1 个答案:

答案 0 :(得分:2)

例如使用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')
相关问题