Извлечение данных 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);
})