合并两个 gm 对象,同时在 GraphicsMagick for NodeJS 中调整其中一个对象的大小

2024-06-03

 var image = gm(someImageUrl)
 .resize(100,100);

 var drawings = gm(200,200,'red')
 .fill('blue')
 .drawRectangle(20,20,40,40);

 // Would be great to have sth like this. 
 drawings.drawImage(image, position)
 // or
 drawings.add(image, position)
 // or
 drawings.draw(image, position)

附加不是一个选项,因为我希望它们重叠并设置图像的精确位置


这可以通过采用组合选项(即命令() and in()作用于物体上的函数gm()返回),它们本质上是您将传递给 shell 的选项标志。

例如:

gm()
.command("composite") 
.in("-gravity", "center")
.in(change_image_url)
.in(base_image_url)
.write(out_file, function (e) {
  if (!e) {
    console.log('this worked');
  } else {
    console.log(err);
  }
});

但是,需要注意的是流和缓冲区无法利用它们,因为命令行选项需要原始文件输入。如果您希望输入 URL,这可能适合您的情况。

尝试看看节点画布 https://www.npmjs.com/package/canvas对于实际的drawing能力。您可以添加图像对象,然后使用 createPngStream 创建 Graphics Magick 可以读取的流,以进行任何最后一刻的编辑/抗锯齿调整大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合并两个 gm 对象,同时在 GraphicsMagick for NodeJS 中调整其中一个对象的大小 的相关文章

随机推荐