前言:今天看到一个判断函数是否合法的函数中
unsigned short ustmpJpg = 0xD8FF, ustmpBmp = 0x4D42,
arustmpPng[4] = {0x5089, 0x474E, 0x0A0D, 0x0A1A};
不理解这些数字有什么含义后面看了一个例子才之后这些是表示图片的类型,如下
#include <stdio.h>
int main()
{
unsigned short BMP=0x4D42,
JPG=0xD8FF,
PNG[4]={0x5089,0x474E,0x0A0D,0x0A1A},
GIF[3]={0x4947,0x3846,0x6139};
FILE *fis;
short int i=0;
unsigned short pis[5];
if((fis=fopen("1.bmp","r"))==NULL)
printf("can not read %s\n","1.bmp");
fread(pis,8,1,fis);
for(i=0;i<4;++i)
printf("%0x..",pis[i]);
printf("\n");
if(pis[0]==BMP)
printf("it is a bmp\n");
else if(pis[0]==JPG)
printf("it is a jpg\n");
else if(PNG[0]==pis[0]&&PNG[1]==pis[1]&&PNG[2]==pis[2]&&PNG[3]==pis[3])
printf("it is a png\n");
else if(GIF[0]==pis[0]&&GIF[1]==pis[1]&&GIF[2]==pis[2])
printf("it is a gif\n");
return 0;
}
参考链接:
https://blog.csdn.net/weixin_35626107/article/details/117210264