BMP 파일 다루는데 질문입니다.
태양
int LoadBmp24(char *filename, unsigned char* pBmpImage)
{
FILE *infile;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
infile = fopen(filename, rb);
if (infile == NULL)
return 0;
printf(%d,sizeof(WORD));
fread(&bfh,sizeof(BITMAPFILEHEADER),1,infile);
if(bfh.bfType!=0x4D42) exit(1);
fread(&bih,sizeof(BITMAPINFOHEADER),1,infile);
if(bih.biBitCount8)
{
printf(Bad File format);
exit(1);
}printf(Image Size: (%3dx%3d)\n,bih.biWidth,bih.biHeight);
printf(Pallete Type: %dbit Colors\n,bih.biBitCount);
return 0;
}
현재 위와 같이 BMP 파일을 읽어오려고 합니다.
근데 자꾸 Bad File format이 떠서 보니까~~
biBitCount가 계속 0이 나옵니다.
그리고 16777216x65536
으로 나옵니다.
이에 대한 해결책을 제시해주십시오.ㅜ
참고로 MFC로 돌렸을 때는 잘 돌아갑니다.
-
내꺼
다른 BMP로 해보시고 마찬가지인가보고, 읽으시려는 BMP헤더부분건드리신거 아니죠?
다른것도 그런다면 if(bih.biBitCount8) 부분 주석처리해보시고 그래도 bitcount값이 마찬가지로 0나오나 해보시는게 좋지않을까요?? -
안녕나야
제 경험상 무작정 소스만 보시기 보다는 BPM파일에 대해서 학습을 하시고 나서 하심이 좋을 듯 합니다. 제가 오늘 처음 가입해서 답글을 못 달아 제 소스를 못 보여드리고 갑니다.
-
스릉흔드
bmp 화일은 bit count가 8보다 작은 경우도 있을겁니다. 그래서 그럴 수도 있습니다.