Насколько я могу судить, класс Decoder
предоставляет байтовый массив значений цвета с помощью метода GetImage()
. Таким образом, вы могли бы написать функцию, которая выглядит следующим образом:
char getLuminance(Decoder* dec, int x, int y) {
if(x < 0 || y < 0 || x >= dec->GetWidth() || y >= dec->GetHeight()) {
throw "out of bounds";
}
return dec->GetImage()[x + y * dec->GetWidth()];
}
Я не уверен в разметке пикселя, поэтому, возможно, доступ к массиву неправильный. Также это работает только для полутоновых изображений, иначе вы получите яркость значения красного цвета только в этой позиции. НТН