1

BGR24 ビット bmp では、各色がそれぞれ 1 バイトしか使用しないように、ピクセルが格納されます。それが読める

for(i=0;i<heigh*width;i++){    // foreach pixel
    image[i][2] = getc(streamIn);  // use BMP 24bit with no alpha channel
    image[i][1] = getc(streamIn);  // BMP uses BGR but we want RGB, grab byte-by-byte
    image[i][0] = getc(streamIn);  // reverse-order array indexing fixes RGB issue...
    printf("pixel %d : [%d,%d,%d]\n",i+1,image[i][0],image[i][1],image[i][2]);
}

しかし、256 色の bmp では、すべてのピクセルが 1 バイトしか使用しないため、この画像を読み取ってすべてのピクセル値を取得するにはどうすればよいでしょうか?

4

1 に答える 1

7

256 には、バイト値をマップするルックアップ テーブルがあります。

http://en.wikipedia.org/wiki/BMP_file_format

Google のコード: (未テスト)

http://paulbourke.net/dataformats/bmp/parse.c

于 2013-02-06T02:00:17.160 に答える