プログラム(C)
#include <stdio.h>
#include <stdlib.h>
#define FNAME "smp.bmp"
#define WSIZE 256
#define HSIZE 256
#define BSIZE 1024
int main(void) {
struct BMPFILEHEADER {
・
・
};
struct BMPINFOHEADER {
・
・
};
unsigned char img[HSIZE][WSIZE][3];
unsigned char buf[BSIZE];
struct BMPFILEHEADER lpHead;
struct BMPINFOHEADER lpInfo;
FILE *fp;
int i;
int j;
int k;
fp = fopen(FNAME,"rb");
if (fp==NULL)
{
printf("ファイルをオープンできません\n");
return 0;
}
fread(&lpHead.bfType, sizeof(unsigned short),1,fp);
fread(&lpHead.bfSize, sizeof(unsigned int),1,fp);
fread(&lpHead.bfReserved1, sizeof(unsigned short),1,fp);
fread(&lpHead.bfReserved2, sizeof(unsigned short),1,fp);
fread(&lpHead.bf0ffBits, sizeof(unsigned int),1,fp);
fread(&lpInfo, sizeof(struct BMPINFOHEADER),1,fp);
for(i=0;i<HSIZE;i++)
{
fread(buf,sizeof(unsigned char),WSIZE*3,fp);
for(j=0;j<WSIZE;j++)
{
for(k=0;k<3;k++)
{
img[HSIZE-1-i][j][k]=buf[j*3+k];
}
}
}
fclose;
return 0;
}
このプログラムはBMP画像を読み込むプログラムなんですが
このプログラムに画素値を出力するプログラムにしたいのですがうまくできません。
結果は(真っ白な画像の時)255255255・・・255255と出力したいのです。白黒画像なのでR=G=Bで1画素値は255だけでいいのですが。どうしても255255255や25500などとでてしまいます。
アドバイスお願いします。(800字までなので構造体の宣言は抜いてしましました)
。