EXIF格式分析及通过XML处理(1)

EXIF格式分析及通过XML处理

 

猛禽[Mental Studio](个人专栏)(BLOG)

http://mental.mentsu.com

 

随着数码相机的普及,EXIF已经被大多数图像处理软件所支持。虽然我做的是一个小玩意儿(见《人个信息助理之我的相册》)但毕竟也是用于图像处理的,虽然目前支持JPEG文件格式,但是还不支持EXIF

那么,什么是EXIF呢?EXIFExchangeable image file format的缩写,即“可交换图像文件格式”,它是由日本电子与信息技术工业协会(JEITA)所制定的一项标准,用于实现在不同的软件或设备之间交流图像数据,典型的应用就是数码相机直接连接打印机打印照片。当然,EXIF中还包含了很丰富的信息,从中可以知道这个数码照片是用什么相机拍的,拍摄时用的光圈、速度、ISO等。而且最新版本的EXIF还支持音频格式文件。

关于EXIF的最权威文档资料当然是JEITA的标准规范[1],目前最新的版本是2.2。不过JEITA的网站上虽然提供了两个语言版本(日语和英语,并且JEITA声明以日文版为准)的规范文档,但是需要收费的。还好通过GOOGLE还是找到了一个英文版的。

EXIF只提供对两种图像文件格式的支持:TIFF[2]JPEG[3,4]。其中对不压缩图像使用TIFF格式,对压缩图像使用JPEG格式。本文主要讨论JPEG格式。

我们知道JPEG文件格式是通过所谓的Marker Segments来记录图像的相关信息的,这种方式具有非常好的灵活性和可扩充性,较之早年的PCXGIFBMP等采用固定格式文件头记录的方式要好很多(PCX原先是为16色图像设计的,在256色图像出现后,就破坏了原先的格式定义,将调色板续在文件尾部;而GIF虽然内部也有分段机制,后来被扩充为实现动画功能,但仍然是采用固定格式的文件头记录基本信息),而EXIF就是利用了这一点。

JPEG文件中的每一个Marker Segments都是以一个WORD类型的数值开始(注意:这个数值记录在文件中时是高位字节在前,低位字节在后,将在后面介绍这个字节顺序的问题),这个数值即所谓的Marker,每个Marker代表着相应的Segment的意义,如果这个Segment有内容(即长度大于0,是否有内容视具体Marker而定),接下来的一个WORD类型的数值就是这个

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值