Graphicsmagick 中的合成图像
Posted
技术标签:
【中文标题】Graphicsmagick 中的合成图像【英文标题】:Composite images in Graphicsmagick 【发布时间】:2016-02-16 22:27:54 【问题描述】:我正在尝试从 API 请求图像并将其“粘贴”到另一个图像之上。在 Photoshop 中,我会将图像粘贴到新图层中,然后合并图层。我可以通过 Graphicsmagick 使用 gm 的 Composite() 来完成此操作。
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】:可以直接使用URL作为图片路径,无需下载保存
gm()
.command("composite")
.in("http://someurl...")
.in("http://someurl...")
.toBuffer('PNG', function(err, buffer)
if (!err) return buffer;
);
但 GraphicsMagick 使用 libxml2 的 HTTP 支持,目前不支持 HTTPS。因此,如果您想通过 HTTPS 下载图像,则需要外部程序。
【讨论】:
以上是关于Graphicsmagick 中的合成图像的主要内容,如果未能解决你的问题,请参考以下文章
node js使用graphicsmagick调整文件夹中所有图像的大小
graphicsmagick - 将图像转换为 pdf,反之亦然