node.js - Graphicsmagick 中的合成图像

标签 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;}
});

但是,复合仅采用文件路径。假设我想从 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/

相关文章:

javascript - 为什么 node.js querysting 模块应该将加号 (+) 转换为空格?

node.js - 如何在 Twitter 中注册 webhook url?

node.js - 我应该从后端或客户端应用程序向 Elasticsearch 调用搜索查询吗?

node.js - 在node.js和graphicsmagick中创建带背景的透明图像

javascript - 无法让 node.js 返回有效的签名 PUT URL

javascript - Node.js(express) .end() 与 JSONP

node.js - 在 GraphicsMagick Nodejs 中将透明转换为白色

graphics - 如何修复使用 Graphicsmagick 收集的损坏的 alpha channel (残留像素)的 .gif?

javascript - 使用 collectionFS 显示多个商店

php - 修剪图像背景但在 Graphicsmagick 中保留填充