1

我想使用解码器Mini Jpeg Decoder用 C++ 处理 JPEG 图像。

问题是:我想读取每个像素的像素,但解码器只返回一个 imageData 数组,与libjpeg类似。

我不能做这样的方法:

char getPixel(char x, char y, unsigned char* imageData) 
{
    //...???
}

返回(char变量)应包含像素的亮度。

(我使用灰度图像...)

我怎么解决这个问题?

4

1 回答 1

0

据我所知,该类使用该方法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()];
}

我不确定像素布局,所以数组访问可能不正确。此外,这仅适用于灰度图像,否则您将仅在该位置获得红色值的亮度。高温高压

于 2011-06-04T20:03:19.643 回答