手机开发实战162——EXIF格式介绍3

本文介绍了在处理EXIF格式数据时遇到的挑战,包括不同IFD Entry Type的处理、EXIF与TIFF IFD的关系、Tag的多样性和语言支持问题。提出使用XML作为解决方案,因其树形结构与EXIF数据匹配,可以方便地转换和再处理,解决了灵活性和扩展性问题。
摘要由CSDN通过智能技术生成

数据处理

EXIF格式的分析,至此基本上告一个段落了。从分析结果上可以看出,EXIF是一种非常灵活的格式,具有非常好的可扩充性,要想较好地处理其中的相关数据也是比较麻烦的。

其困难主要在于几个方面:

1、对于每种不同的IFD Entry Type,需要用不同的方法获取数据,特别是对于数据长度不同时,可能采用不同的数据存储方式,而IFD Entry的数量又可能很多,每个Entry根据Tag不同又有不同的意义

2EXIF IFD是作为TIFF IFD的子链表形式存在(因为EXIFIFD里定义了不同于TIFF标准的Tag,要保持与标准的TIFF格式互用,必须这样做),使得原来的链表结构变成了树形结构

3Tag的种类和数量非常之大,在EXIF规范里定义了各个Tag的支持级别(见[1]4.6.8),光是JPEG格式下必须支持的Tag就有十几个,TIFF格式更多,再加上可选支持的Tag,有几十上百个,并且还存在未来继续扩充的可能

4、对于可支持不同语言的软件来说,同一个Tag的意义要用每一种支持的语言表达一次,如果将这部分处理写入代码,对于增加新的语言支持会带来不必要的麻烦

为了解决这些困难,必须要找到一个同样是非常灵活的处理方法来处理EXIF数据。而XML正是这样一种方法。从前面的分析结果可以看出,EXIF的数据记录方式是层层嵌套的树形结构,是非常适合用XML的,因为XML也是这样的树形结构。

通过定义一套XML标签,然后将EXIF数据转换成XML文档,可以最大限度地保留EXIF数据的原始内容及结构。并且作为一种通用格式,XML可以很方便地进行再处理,比如:通过XSLT进行转换,使之成为HTML或其它便于显示的格式;或者将此XML传递给其它软件作进一步处理等。

对于前面说到的困难,XML都很好地解决:

1、不同类型的问题,通过转换为XML,将所有的Value都转换成字符串,便于统一处理

2XML本来就是树形结构,可以在转换的时候方便地通过调整节点位置,使各IFD统一处理

3、可以将所有的Tag原样导出到XML中,在以后对XML的处理时再根据Tag进行处理,比如通过修改XSL文件实现对新增Tag的支持

4、同样是对XML处理时才需要面对具体的Tag,比如为不同的语言提供相应的XSL文件即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值