簡單得判斷圖片文件類型的代碼

一般情況只要看圖片文件後綴,就可以知道該圖片是什麼格式

但有些特殊情況,當一個圖片文件後綴不可知的時候想要知道一個圖片文件的類型(有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);
   }  

 

 

 

  

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章