在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;} }); 

但是,复合只需要文件path。 假设我想从http://www.google.com获取徽标。 我可以保存图像,在上面的代码中使用它,然后删除它。 我正在寻找的是一种方法来实现这一点,而不必先将图像保存到磁盘。

您可以直接使用URL作为图像path,而不需要下载和保存

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

但是GraphicsMagick使用来自libxml2的HTTP支持,它目前不支持HTTPS。 所以如果你想通过HTTPS下载图片,你将需要外部程序。