我们平时常用的图片类型有jpg、bmp、png和gif等,一般情况下我们会根据图片的后缀名去判断图片的类型,其实这样做是不科学的,文件的后缀名是可以随意修改的,但文件的内容始终是不变的,不会因为后缀名的修改,就变成修改后的文件类型了。
有时我们的代码中是需要识别图片的类型的。比如对于.bmp位图文件,可能bmp格式的图片大小比较大,我们需要把这个图片通过网络发出去,为了减轻网络的发送压力,我们需要将图片转成jpg或png图片后再将图片发送出去。因为jpg或png格式的图片有着较高的压缩率,可以有效地较少图片文件的大小,这样就减轻了图片再网络传输的压力。
那如何通过代码去鉴别文件的真实图片类型呢?其实很简单,可以通过fread等函数读出文件内容最开始的若干个字节来判断,每种图片的都有对应的类型标识。
1、bmp图片
bmp图片文件的前2个字节存放bmp类型标识,识别代码如下:
BOOL IsBmpFile( LPCTSTR lpStrFilePath