Как прочитать данные буфера изображения, возвращенного резким? - PullRequest
0 голосов
/ 24 февраля 2019

Я использую резкий пакет npm для изменения размера изображений, и он возвращает массив Buffer, который я считаю пикселями.Мне нужно получить цвет каждого пикселя.Я пытался перебрать массив с 3 индексами на цикл, чтобы получить значения rgb, но, похоже, это не работает, так как я получаю цвета, которых, как я знаю, нет на изображении.

Например, он говорит, что логотип твиттера почти на 30% черный.Я не могу найти ничего в четких документах, которые говорят, из чего сделан буфер, который он возвращает, хотя он говорит, что возвращение будет в той же форме, в которой оно было до преобразования.Есть ли более общее понимание того, что возвращают буферы, с которыми кто-то может мне помочь?

Мой код на данный момент:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...