0

我目前将 8 位位图的像素数据存储在一个字节数组中:BYTE* pixelData.

现在我将如何编写自己的函数以通过其位置返回像素的颜色?我已经进行了大量搜索,但没有找到任何使用 C++ 涵盖此内容的内容。

4

2 回答 2

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);
于 2012-06-03T16:17:21.420 回答
1

你不能,没有足够的数据。几乎所有 8bpp 像素格式都是索引格式。他们使用存储实际 RGB 颜色的颜色表,像素位置的字节是该表的索引。该表包含 256 个条目。

您还需要一个指向颜色表的指针。

于 2012-06-03T16:21:29.953 回答