【问题标题】:How convert jimp object to image buffer in node?如何将 jimp 对象转换为节点中的图像缓冲区?
【发布时间】:2020-06-27 18:39:29
【问题描述】:

所以,我使用一些库以特定方式将可数图像连接到单个图像。

这个库使用Jimp 库来完成它,并且在所有连接之后返回一个Jimp 对象。像这样:

Jimp {
  _background: 0,
  bitmap: {
    data: <Buffer 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... 2359246 more bytes>,
    width: 768,
    height: 768
  }
}

加入后,我需要将此Jimp 对象转换为节点Buffer 对象而不将图像作为文件写入磁盘并返回Buffer 以在后续步骤中使用它。

有可能吗?我在 Jimp 文档中找不到任何内容。当我尝试将Jimp.bitmap.data 写入文件时,此图像已损坏...

谢谢!

【问题讨论】:

  • 缓冲区可能是原始图像数据。您需要哪种格式的图像?巴布亚新几内亚? JPEG?
  • @cubrr,我需要 png 图片。认为这个缓冲区代表缓冲区中每 4 个字节的一个像素:三个值用于 rgb,一个用于 alpha。
  • @cubrr,是的!准确的说,自己找吧。谢谢!

标签: javascript node.js image buffer jimp


【解决方案1】:

所以,我找到了解决方案。 Jimp lib 中有一个方法可以解决这个问题。但是文档中没有一行没有描述这一点。工作解决方案:

const Jimp = require('jimp');

const img = Jimp.read('img.png');

img.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
  console.log(buffer);
});

和控制台输出:

<Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 03 00 ... 211452 more bytes>

这对我来说很有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多