我正在尝试从 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;}
});
但是,复合仅采用文件路径。假设我想从 http://www.google.com 获取 Logo 。我可以保存图像,在上面的代码中使用它,然后删除它。我正在寻找一种方法来完成此任务,而无需先将图像保存到磁盘。
最佳答案
可以直接使用URL作为图片路径,无需下载保存
gm()
.command("composite")
.in("http://someurl...")
.in("http://someurl...")
.toBuffer('PNG', function(err, buffer) {
if (!err) {return buffer;}
});
但是 GraphicsMagick 使用 libxml2 中的 HTTP 支持,目前不支持 HTTPS。因此,如果您想通过 HTTPS 下载图像,您将需要外部程序。
关于node.js - Graphicsmagick 中的合成图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444247/