文件头

文件头编辑


文件头是位于文件开头的一段承担一定任务的数据一般都在开头的部分
2解释
编辑

别看这个文件头和C语言中的头文件读起来很像,但这两个东西其实根本没有一点关系:头文件是一种包含功能函数,数据接口声明的载体文件[1] ;而文件头则是直接位于文件中的一段数据,是文件的一部分
大家应该知道,微机中的文件有很多种类型,而相同类型的文件一般还会多多少少有一些不同的地方.文件的类型有EXE,COM,BMP,GIF,WMV,APE,RMVB,FLV,SWF,TXT,CPP,ASM等等,当然有的文件根本就没有文件头,比如说TXT,不信的话可以用UltraEdit打开一个文本文件,除了这个文本文件本身的字符,你不会看到任何其他的数据.不同类型的文件,只要拓展名不同,操作系统就可以识别这个文件,并用不同的程序来打开这个文件了,比如JPEG文件,它的拓展名一般式jpg,当双击这种类型的文件时,操作系统会自动选择相应的程序来打开这个文件,比如用ACDSee打开.但值得注意的是,相同类型的文件是有不同的地方的,这回拿BMP来举例,大家可以想象一下不同的图片之间最大的不同是什么,有人可能会说是内容,我可以告诉你,你想歪了!不知道大家有没有在看到各种不同大小的图像的时候想过图像浏览软件是怎样识别图像的大小的?这其实就是文件头的功劳!下面给大家演示一下:
先用Windows自带的画图软件创建一个64*64像素的16位纯白BMP图像,保存为1.bmp
然后将图像的大小改为128*64,另存为2.bmp
在ACDSee的浏览界面看到如图的两个东西
再用UltraEdit同时打开这两个文件,看看这两个文件的前32个字节:
1.bmp:
00000000h: 42 4D 76 08 00 00 00 00 00 00 76 00 00 00 28 00 ; BMv.......v...(.
00000010h: 00 00 40 00 00 00 40 00 00 00 01 00 04 00 00 00 ; ..@...@.........
2.bmp:
00000000h: 42 4D 76 10 00 00 00 00 00 00 76 00 00 00 28 00 ; BMv.......v...(.
00000010h: 00 00 80 00 00 00 40 00 00 00 01 00 04 00 00 00 ; ..?..@.........
由于这是十六进制的数据,所以要将原来图像的宽度和高度换成十六进制,以便找到我们想要看到的数据
十进制的128等于十六进制的80,十进制的64等于十六进制的40.这样在第二行好像有我们找的数据
这个过程只是为了让大家了解一下文件头,其实这些数据都是有标准的,百度百科的BMP词条就有BMP文件的文件结构
LONG biWidth; // 位图的宽度以像素为单位(18-21字节)[2]
LONG biHeight; // 位图的高度以像素为单位(22-25字节)
18-21字节的数据是80 00 00 00,这是个双字,其实就是80,内存中的数据就是这么放的,这个不是问题
写这么多大家应该对文件头有一点了解了吧?
文件头就是为了描述一个文件的一些重要的属性,它告诉了打开并处理该文件的程序这些属性,比如上面说的BMP的文件头将长

宽像素值告诉了ACDSee,ACDSee会根据文件头中的数据以及图像数据的正文把图像显示出来
3常见文件的文件头
编辑

jpg: 255,216
gif: 71,73
bmp: 66,77
png: 137,80
doc: 208,207
docx: 80,75
xls: 208,207
xlsx: 80,75
js: 239,187
swf: 67,87
mp3: 73,68
wma: 48,38
mid: 77,84
rar: 82,97
zip: 80,75
xml: 60,63
用文件头判断直接读取文件的前几个字节
常用文件的文件头如下(16进制)
JPEG (jpg)文件头FFD8FF
PNG (png)文件头89504E47
GIF (gif)文件头47494638
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. 头文件定义 .
2. BMP文件结构 .

相关文档
最新文档