通过图片文件头判断图片格式

今天测试公司产品的时候发现一个Bug,上传图片需要在允许的格式下方可上传,例如常见的Png,从GPT下载下来的图片是.png的,但确实无法上传。拿到图片后查看文件头,发现是webp格式的。

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

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

 

方式一:通过文件头判断

1.将一张图片的后缀修改成.txt,变成文本格式;
2.通过sublime(点击官网下载)打开这个TXT文件,显示就是十六进制码了;

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

1.BMP(位图):
文件头标识:BM(即 0x42, 0x4D)

2.GIF(图形交换格式):
文件头标识:GIF87a 或 GIF89a(即 0x47, 0x49, 0x46, 0x38, 0x37, 0x61 或 0x47, 0x49, 0x46, 0x38, 0x39, 0x61)

3.JPEG(联合照片专家组):
文件头标识:FF D8(即 0xFF, 0xD8)

4.PNG(便携式网络图形):
文件头标识:89 50 4E 47 0D 0A 1A 0A(即 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A)

5.TIFF(标记图像文件格式):
文件头标识(多种):42 49 4D 00、49 49 2A 00、4D 4D 00 2A(即 0x42, 0x49, 0x4D, 0x00 或 0x49, 0x49, 0x2A, 0x00 或 0x4D, 0x4D, 0x00, 0x2A)

6.WebP(Web 图片格式):
文件头标识(多种):52 49 46 46、57 45 42 50(即 0x52, 0x49, 0x46, 0x46 或 0x57, 0x45, 0x42, 0x50)

7.ICO(图标文件格式):
文件头标识:00 00 01 00(即 0x00, 0x00, 0x01, 0x00)

8.PCX(PC 绘图文件格式):
文件头标识:0A(即 0x0A)

9.PSD(Adobe Photoshop 文件格式):
文件头标识:38 42 50 53(即 0x38, 0x42, 0x50, 0x53)

 

 

其他格式:

TIFF (tif),文件头:49492A00
Windows Bitmap (bmp),文件头:424D
CAD (dwg),文件头:41433130
Adobe Photoshop (psd),文件头:38425053
Rich Text Format (rtf),文件头:7B5C727466
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
Email [thorough only] (eml),文件头:44656C69766572792D646174653A
Outlook Express (dbx),文件头:CFAD12FEC5FD746F
Outlook (pst),文件头:2142444E
MS Word/Excel (xls.or.doc),文件头:D0CF11E0
MS Access (mdb),文件头:5374616E64617264204A
WordPerfect (wpd),文件头:FF575043
Adobe Acrobat (pdf),文件头:255044462D312E
Quicken (qdf),文件头:AC9EBD8F
Windows Password (pwl),文件头:E3828596
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
Wave (wav),文件头:57415645
AVI (avi),文件头:41564920
Real Audio (ram),文件头:2E7261FD
Real Media (rm),文件头:2E524D46
MPEG (mpg),文件头:000001BA
MPEG (mpg),文件头:000001B3
Quicktime (mov),文件头:6D6F6F76
Windows Media (asf),文件头:3026B2758E66CF11
MIDI (mid),文件头:4D546864

 

 

 

 

方式一:在线查看

1.在线查看图片格式:https://jimpl.com/

支持本地上传与URL上传

 

 

 

 
posted @ 2024-07-17 16:51  小林同学_Scorpio  阅读(334)  评论(3编辑  收藏  举报
1