使用Imagemagick进行节点gm圆形图像裁剪
我一直在尝试使用node gm+Imagemagick循环裁剪图像 不管怎么说,这里是我尝试创建一个面具使用黑色圆圈使用Imagemagick进行节点gm圆形图像裁剪,imagemagick,node-imagemagick,node-gm,Imagemagick,Node Imagemagick,Node Gm,我一直在尝试使用node gm+Imagemagick循环裁剪图像 不管怎么说,这里是我尝试创建一个面具使用黑色圆圈 var original = 'app-server/photo.jpg'; var output = 'app-server/photo.png'; var maskPath = 'app-server/photo-mask.png'; gm(original) .crop(233, 233,29,26) .resize(80, 80) .se
var original = 'app-server/photo.jpg';
var output = 'app-server/photo.png';
var maskPath = 'app-server/photo-mask.png';
gm(original)
.crop(233, 233,29,26)
.resize(80, 80)
.setFormat('png')
.write(output, function (err) {
console.log(err || 'cropped to target size');
gm(output)
.out('-size', '80x80')
.background('black')
.drawCircle(20,20, 0, 0)
.toBuffer('PNG',function (err, buffer) {
console.log(err || 'created circular black mask');
//docs say "a buffer can be passed instead of
//a filepath" but this is apparently false
//and say something unclear about using black/white colors for masking.
//I'm clearly lost
gm(output)
.mask(maskPath)
.write(output, function (err) {
console.log(err || 'applied circular black mask to image');
});
});
});
我确信这可以通过一些奇特的字符串命令串联来实现,但是尽管我缺乏图像处理能力,我仍然希望保持代码的整洁。我真的在寻找一个使用节点gm函数的解决方案,最好比我尝试的操作更少(也最好是可以工作的,不像我的)
我还尝试链接出此命令的函数调用,但没有成功:
注:我需要在特定位置(w、h、x、y)进行裁剪,因此这些解决方案也不适用于我:
明白了!经过几个小时的摆弄,我得到了我所需要的东西
gm(originalFilePath)
.crop(233, 233,29,26)
.resize(size, size)
.write(outputFilePath, function(err) {
gm(size, size, 'none')
.fill(outputFilePath)
.drawCircle(size/2,size/2, size/2, 0)
.write(output, function(err) {
console.log(err || 'done');
});
});
我使用来允许用户在前端裁剪图像,并将坐标(w,h,x,y)传递到crop()中 您好,您能否帮助理解第5行=>“gm(尺寸,尺寸,'无')”?拜托?我遇到了一些错误,比如“gm转换:无法识别的颜色”。我不知道这个函数调用的哪个传递颜色名。