【问题标题】: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);
                        }
                    });
                }
            });
        };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 2018-04-14
      相关资源
      最近更新 更多