我使用此代码将多个图像合并为一个,但透明度在结果文件中消失了。背景是纯黑色。
gm.in('convert').in('-size', '200x100')
.in('xc:transparent')
.in('-page', '+0+0').in('image1.png')
.in('-page', '+100+0').in('image1.png')
.in('-flatten')
.write('result.png', function (err) {
if (err) console.log(err);
})
我也尝试过:
.in('background', 'transparent')
和
.in('background', 'black')
.in('transparency', 'black')
知道怎么做吗?
答案 0 :(得分:0)
http://www.graphicsmagick.org/FAQ.html#how-can-i-add-a-matte-layer-to-my-image
您需要使用复合命令。
gm.prototype.compose = function(operator) {
this.command('composite'); // need to use composite over the node gm default convert
return this.out("-compose", operator);
};
gm....
.compose('CopyOpacity').
答案 1 :(得分:0)
对于那些被这个讨论搞糊涂的人。通用汽车继续开发,但在github的分支下。发起人未能使npm保持最新状态。只需将最新的fork直接分配到node_modules。
答案 2 :(得分:0)
你可以试试这个..
gm.in('convert').in('-size', '200x100')
.in('-page', '+0+0').in('image1.png')
.in('-page', '+100+0').in('image1.png')
.in('-background', 'none')
.write('result.png', function (err) {
if (err) console.log(err);
})