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)
附加不是一个选项,因为我希望它们重叠并为图像设置精确位置
答案 0 :(得分:2)
这可以通过在 gm()的对象上使用合成选项(即 command()和 in()函数来实现。返回),它们本质上是你传递给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);
}
});
但是,需要注意的是,流和缓冲区无法利用它们,因为命令行选项需要原始文件输入。如果您希望输入网址,这可能适用于您的情况。
尝试查看node-canvas的实际绘图功能。您可以添加图像对象,然后使用createPngStream创建Graphics Magick可以读取的流,用于任何最后编辑/消除锯齿的大小调整。