2014-12-03 35 views
1
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) 

调整它们中的一个在GraphicsMagick工具追加不是一种选择,因为我想他们重叠,并且设置精确位置到图像组合两个克对象而对的NodeJS

回答

2

这是可能的诉诸组合物的选择(即命令()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,这可能适用于你的情况。

试试看node-canvas为实际功能。您可以添加图像对象,然后使用createPngStream创建Graphics Magick可以读取的流,以进行任何最后一刻的编辑/消除​​锯齿调整。