現在、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 のエントリが含まれています。
また、カラー テーブルへのポインタも必要です。