Graphicsmagick 中的合成图像
Composite images in Graphicsmagick
我正在尝试从 API 请求一张图片,然后 "paste" 将其放在另一张图片之上。在 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 获取徽标。我可以保存图像,在上面的代码中使用它,然后删除它。我正在寻找一种无需先将图像保存到磁盘即可完成此操作的方法。
可以直接使用URL作为图片路径,无需下载保存
gm()
.command("composite")
.in("http://someurl...")
.in("http://someurl...")
.toBuffer('PNG', function(err, buffer) {
if (!err) {return buffer;}
});
但是GraphicsMagick使用libxml2的HTTP支持,目前不支持HTTPS。因此,如果您想通过 HTTPS 下载图像,您将需要外部程序。
我正在尝试从 API 请求一张图片,然后 "paste" 将其放在另一张图片之上。在 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 获取徽标。我可以保存图像,在上面的代码中使用它,然后删除它。我正在寻找一种无需先将图像保存到磁盘即可完成此操作的方法。
可以直接使用URL作为图片路径,无需下载保存
gm()
.command("composite")
.in("http://someurl...")
.in("http://someurl...")
.toBuffer('PNG', function(err, buffer) {
if (!err) {return buffer;}
});
但是GraphicsMagick使用libxml2的HTTP支持,目前不支持HTTPS。因此,如果您想通过 HTTPS 下载图像,您将需要外部程序。