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

EXIF格式分析及通过XML处理<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

http://mental.mentsu.com

转换后的XML大致如下:

<?xml version="1.0" encoding="GB2312"?>

<ExifAPP1>

<ExifID>Exif</ExifID>

<TIFFHeader>

<ByteOrder>II</ByteOrder>

<Flag>0x002A</Flag>

<IFD name="IFD0">

<Count>0xB</Count>

<Entry>

<Tag>0x10E</Tag>

<Type>2</Type>

<Size>0xB</Size>

<Value> </Value>

</Entry>

<Entry>

<Tag>0x10F</Tag>

<Type>2</Type>

<Size>0x6</Size>

<Value>NIKON</Value>

</Entry>

<Entry>

<Tag>0x110</Tag>

<Type>2</Type>

<Size>0x5</Size>

<Value>E775</Value>

</Entry>

<Entry>

<Tag>0x8769</Tag>

<Type>4</Type>

<Size>0x1</Size>

<Value>0x0000011C</Value>

</Entry>

</IFD>

<IFD name="EXIF">

<Count>0x18</Count>

<Entry>

<Tag>0x9000</Tag>

<Type>7</Type>

<Size>0x4</Size>

<Value> 0x30 0x32 0x31 0x30</Value>

</Entry>

<Entry>

<Tag>0x9286</Tag>

<Type>7</Type>

<Size>0x7D</Size>

<Value> 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20

0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20

0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20

0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20

0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20

0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20

0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20

0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20</Value>

</Entry>

<Entry>

<Tag>0xA005</Tag>

<Type>4</Type>

<Size>0x1</Size>

<Value>0x00000376</Value>

</Entry>

</IFD>

<IFD name="InterOp">

<Count>0x2</Count>

<Entry>

<Tag>0x1</Tag>

<Type>2</Type>

<Size>0x4</Size>

<Value>R98</Value>

</Entry>

<Entry>

<Tag>0x2</Tag>

<Type>7</Type>

<Size>0x4</Size>

<Value> 0x30 0x31 0x30 0x30</Value>

</Entry>

</IFD>

<IFD name="IFD1">

<Count>0x6</Count>

<Entry>

<Tag>0x103</Tag>

<Type>3</Type>

<Size>0x1</Size>

<Value>0x0006</Value>

</Entry>

</IFD>

</TIFFHeader>

</ExifAPP1>

有了这个XML就可以很方便地进行下一步处理了,比如用下面这个XSL文件对上面这个XML进行转换:

<?xml version="1.0" encoding="GB2312" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<xsl:for-each select="ExifAPP1/TIFFHeader/IFD/Entry">

<xsl:choose>

<xsl:when test="Tag[.='0x10F']">制造商=<xsl:value-of select="Value" />

</xsl:when>

<xsl:when test="Tag[.='0x110']">型号=<xsl:value-of select="Value" />

</xsl:when>

</xsl:choose>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

即可得出下面的结果:

制造商=NIKON

型号=E775

以后不论是增加Tag还是要改语言,只要修改这个XSL文件即可实现,完全不用修改EXIF处理部分的程序代码,非常的灵活方便。

[Mental Studio]猛禽

2004-4-3

参考文献:

[1] JEITA CP-3451. Exchangeable image file format for digital still cameras:Exif Version 2.2. JEITA(Japan Electronics & Information Technolog Industries Association). April, 2002.

[2] Aldus Corporation. TIFF Revision 6.0 Final - June 3,1992.

[3] Gregory K.Wallace. The JPEG Still Picture Compression Standard.Communications of the ACM. April, 1991.

[4] Eric Hamilton. JPEG File Interchange Format Version 1.02. C-Cube Microsystem. September 1, 1992.

(续完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值