一般情況只要看圖片文件後綴,就可以知道該圖片是什麼格式
但有些特殊情況,當一個圖片文件後綴不可知的時候想要知道一個圖片文件的類型(有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);
}