2011-06-04 85 views
1

我想用C++使用解碼器處理JPEG圖像Mini Jpeg Decoder使用Mini Jpeg Decoder處理JPEG圖像像素每像素

的問題是:我想讀每個像素的像素,但解碼器僅返回一個爲imageData陣列,如libjpeg不相似。

我不能使一個方法是這樣的:

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

返回(在char變量)應該包含像素的亮度。

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

我該如何解決這個問題?

回答

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()]; 
} 

我不確定像素佈局,所以也許數組訪問是不正確的。此外,這僅適用於灰度圖像,否則您只能在該位置獲得紅色值的亮度。 HTH

+0

非常感謝你,它完美的作品! – cafaxo 2011-06-04 20:44:10