【问题标题】:How can I blur only part of image using node js如何使用节点 js 仅模糊图像的一部分
【发布时间】:2018-01-29 17:41:39
【问题描述】:
我有一项来自亚马逊的服务,可以从图片中返回人脸坐标!!
{ "Top" : 0.16105769574642181, "Left" : 0.32451921701431274, "Height" : 0.2788461446762085, "Width" : 0.27764421701431274 }
我只想从图像中模糊脸部(或正方形)。我正在尝试 ImageMagick,但无法使其工作!所以,我找到了一种不同的方法,但无法将其放入代码中
http://www.imagemagick.org/Usage/masking/#read_mask
如果你知道任何可以提供帮助的 NPM 或如何使用 ImageMagick 来做这件事,那将非常有帮助
【问题讨论】:
标签:
node.js
amazon-s3
imagemagick
image-manipulation
【解决方案1】:
所以我找到了一个非常简单的解决方案:
image => url 或路径;
faceDetails => 是 aws rekognition 返回的面孔数组 facesDetails.boundinBox 是您在问题中看到的对象
let blur = function(image, faceDetails) {
let img = gm(image);
img.size(function(err, value){
if (err) {
console.log(err);
} else {
faceDetails.forEach((faceDetail) => {
const box = faceDetail.BoundingBox,
width = box.Width * value.width,
height = box.Height * value.height,
left = box.Left * value.width,
top = box.Top * value.height;
img.region(width, height, left, top).blur(0, 50);
});
img.write(__dirname + '/archive/resize.jpg', function (err) {
if (!err) {
console.log('done Wrting .....');
}else{
console.error(err);
}
});
}
});
};