一般情况只要看图片文件后缀,就可以知道该图片是什么格式
但有些特殊情况,当一个图片文件后缀不可知的时候想要知道一个图片文件的类型(有BMP JPEG GIF 等等)
现在有很多开源的库的可以判断文件的类型,有时候想想不需要那么多的代码就可以判断
下面的代码可以知道,原理应该是这样,代码未经测试
int fh;
long len;
//得到内容长度
fh = _open( imagefile, _O_RDONLY );
len = _lseek( fh, 0L, SEEK_END );
if( pos == -1L )
perror( "_lseek to end failed" );
_close( fh );
FILE *pf = fopen(imagefile,"rb");
if(pf)
{
unsigned char *buf = (unsigned char*)malloc(len);
fread(buf, 1, len, pf);
if(buf[0]==0X42 && buf[1]==0X4D)//4D42 BMP
{
}
else if(buf[0]==0XFF && buf[1]==0XD8)//D8FF JPEG
{
}
else if(buf[0] ==0X47 && buf[1]==0X49)//4947 GIF
{
}
else if(buf[0]==0X0A && buf[1]==0X0)//050A PCX
{
}
else if(buf[0]==0X89 && buf[1]==0X50)//5089 PNG
{
}
else if(buf[0]==0X38 && buf[1]==0X42)//4238 PSD
{
}
else if(buf[0]==0X59 && buf[1]==0XA6)//A659 RAS
{
}
else if(buf[0]==0X01 && buf[1]==0XDA)//DA01 SGI
{
}
else if(buf[0]==0X49 && buf[1]==0X49)//4949 TIFF
{
}
else
{
}
free(buf);
fclose(pf);
}