【问题标题】:Generate PNG image using node.js使用 node.js 生成 PNG 图像
【发布时间】:2020-01-10 22:55:18
【问题描述】:

是否可以使用 Node.js 从像素数据数组创建 PNG 图像?我想从一个 RGBA 值数组创建一个 PNG 图像,然后将其保存到一个文件中。

【问题讨论】:

标签: node.js


【解决方案1】:

您可以使用jimp

const Jimp = require('jimp');


let imageData = [
  [ 0xFF0000FF, 0xFF0000FF, 0xFF0000FF ],
  [ 0xFF0000FF, 0x00FF00FF, 0xFF0000FF ],
  [ 0xFF0000FF, 0xFF0000FF, 0x0000FFFF ]
];


let image = new Jimp(3, 3, function (err, image) {
  if (err) throw err;

  imageData.forEach((row, y) => {
    row.forEach((color, x) => {
      image.setPixelColor(color, x, y);
    });
  });

  image.write('test.png', (err) => {
    if (err) throw err;
  });
});

此代码使用数组中定义的颜色创建一个 3x3 像素的 png 文件。

【讨论】:

  • 嗨,知道如何从像[ ... [r, g, b], [5, 63, 255] ...] 这样的像素数组构建imageData 数组吗?
  • @Frondor,你应该使用Jimp.rgbaToInt(r, g, b, a); 来构建十六进制格式的颜色。
  • 是的,经过几次谷歌搜索后发现。谢谢!
猜你喜欢
  • 2020-06-19
  • 2012-07-18
  • 2019-01-03
  • 2023-03-28
  • 1970-01-01
  • 2019-01-24
  • 2021-06-09
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多