Извлечение данных RGBA из изображения

Я ищу способ извлечь все данные RGBA изображения.

Я наткнулся на getImageData() метод из модуля canvas и для 10x10 в моем случае он возвращает массив только с нуля. Ниже показано, как я извлекаю данные прямо сейчас. Любые идеи, спасибо

fs.readFile(__dirname + '/image.jpg', function(err, data) {
    if (err) throw err;
    var img = new Canvas(10, 10)   
    img.src = data;
    var c = img.getContext('2d');
    var imgData = c.getImageData(0, 0, img.width, img.height);
})

1 ответ

Решение

Как я уже упоминал в своем последнем комментарии, я считаю, что основная проблема заключается в том, что fs.readFile возвращает вам необработанные данные, которые бесполезны для атрибута холста src. Я думаю, что ниже будет работать, но я признаюсь, я не проверял это.

fs.readFile(__dirname + '/image.jpg', function(err, data) {
    if (err) throw err;
    var img = new Canvas(10, 10)
   img.src = 'data:image/jpeg;base64,'+ data.toString('base64');
   var c = img.getContext('2d');
   var imgData = c.getImageData(0, 0, img.width, img.height);
})
Другие вопросы по тегам