如何读取Sharp返回的图像的缓冲区数据?

时间:2019-02-23 23:03:46

标签: javascript node.js image-processing buffer

我使用的是Sharp NPM软件包来调整图像大小,它返回一个我认为是像素的Buffer数组。我需要获取每个像素的颜色。我曾尝试以每个循环3个索引的方式在数组上循环以获取rgb值,但这似乎不起作用,因为我得到的是我所知不在图像中的颜色。

例如,它说twitter徽标几乎是30%黑色。我在清晰的文档中找不到任何说明返回的Buffer组成的内容,尽管它说返回的格式与转换前的格式相同。对于有人可以帮助我的Buffer返回值是否有更一般的理解?

到目前为止,我的代码是:

sharp(image)
            .resize(2500)
            .toBuffer()
            .then( new_image =>{
                let index = 0;
                let rgb_values = [];
                while(index < new_image.length){
                    let point = {
                        red : new_image[index],
                        green : new_image[index + 1],
                        blue : new_image[index + 2],
                    };


                rgb_values.push(
                    {
                        red : point.red,
                        green : point.green,
                        blue : point.blue
                    }
                );

                index = index +3;
            }

            return resolve(rgb_values);
        } )
        .catch(e=>{
            console.log(e)
        });

我不知道这是否有帮助,但这只是急剧返回new_image的一小部分。

0 个答案:

没有答案