通过文件头判断图片格式

有些情况下,图片的后缀并不能真实的反应图片的格式,通过16进制能准确的判断出图片的真实格式。

事实上,所有的文件都是以二进制的形式进行存储的,本质上没有差别。在每一个文件(包括图片,视频或其他的非ASCII文件)的开头(十六进制表示)实际上都有一片区域来显示这个文件的实际用法,这就是文件头标志。

1、16进制查看

方法一:

1、右键图片,选择Editplus; 2、选择编码格式:Hex viewer (16进制查看); 3、对比文件头,分析出图片真实的格式。

方法二: 1、将一张图片的后缀修改成.txt,变成文本格式; 2、通过sublime打开这个TXT文件,显示就是十六进制码了;

// 常见的图片 文件头标志:
JPEG (jpg),文件头:FFD8FF 
PNG (png),文件头:89504E47 
GIF (gif),文件头:47494638 
TIFF (tif),文件头:49492A00 
Windows Bitmap (bmp),文件头:424D

2、Base64查看(不准)

可以通过在线工具,将图片转换为base64字符串。(仅供参考)头部信息如下:

data:image/jpg;base64,/
data:image/png;base64,/
data:image/jpeg;base64,/
...

补充说明: 图片转base64,是根据文件名的后缀生成头部信息。

测试:将一个txt格式的文本强制改成.jpg,转换成base64时得到的头部信息是: data:image/jpg;base64,/…。

经验分享 程序员 微信小程序 职场和发展