在Graphicsmagick中的复合图像

时间:2016-02-16 22:27:54

标签: node.js graphicsmagick

我正在尝试从API请求图像并将其“粘贴”在另一个图像之上。在Photoshop中,我会将图像粘贴到新图层中,然后合并图层。我可以使用gm的composite()来使用Graphicsmagick实现这一点。

gm().command("composite")
.in("path/to/topImg.png")
.in("path/to/bottomImg.png")
.toBuffer('PNG', function(err, buffer) {
  if (!err) {return buffer;}
});

但是,composite只接受文件路径。所以我想说我想从http://www.google.com获取徽标。我可以保存图像,在上面的代码中使用它,然后删除它。我正在寻找的是一种方法来实现这一点,而无需先将图像保存到磁盘。

1 个答案:

答案 0 :(得分:1)

您可以直接使用网址作为图片路径,而无需下载并保存

gm()
  .command("composite")
  .in("http://someurl...")
  .in("http://someurl...")
  .toBuffer('PNG', function(err, buffer) {
    if (!err) {return buffer;}
  });

但GraphicsMagick使用libxml2的HTTP支持,目前不支持HTTPS。因此,如果您想通过HTTPS下载图像,则需要外部程序。