2012-06-03 45 views
0

我目前有8位位圖的像素數據存儲在字節數組中:BYTE* pixelData如何從字節數組中讀取8位位圖的像素顏色和位置

我現在將如何編碼我自己的函數來返回一個像素的顏色的位置?我做了大量的搜索,並沒有發現任何使用C++的內容。

+0

您可以使用'pixelData [index]'來訪問數組的一個元素。這裏有什麼問題?你問如何將(x,y)座標轉換爲'index'? –

+0

我想弄清楚如何通過我的像素數據通過它們的x和y位置來訪問顏色信息。 – Aequitas

回答

1
BYTE GetPixelColor(BYTE* src, int x, int y, int srcWidth) 
{ 
    return src[y * srcWidth + x]; 
} 

... 
//suppose you have a 800 x 600 bmp, to get the color for pixel at x 30, y 200 
BYTE color = GetPixelColor(src, 30, 200, 800); 
1

你不能,沒有足夠的數據。幾乎所有的8bpp像素格式都是索引格式。它們使用存儲實際RGB顏色的顏色表,像素位置處的字節是該表中的索引。該表包含256個條目。

您還需要一個指向顏色表的指針。

+0

這裏有一些更多:http://en.wikipedia.org/wiki/8-bit_color – James

+0

我現在也開始存儲我的顏色信息,如下所示: RGBQUAD * colors; – Aequitas