我目前将 8 位位图的像素数据存储在一个字节数组中:BYTE* pixelData
.
现在我将如何编写自己的函数以通过其位置返回像素的颜色?我已经进行了大量搜索,但没有找到任何使用 C++ 涵盖此内容的内容。
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);
你不能,没有足够的数据。几乎所有 8bpp 像素格式都是索引格式。他们使用存储实际 RGB 颜色的颜色表,像素位置的字节是该表的索引。该表包含 256 个条目。
您还需要一个指向颜色表的指针。