<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[菩提树下]]></title>
<link>http://tians.lnfs.net/</link>
<description><![CDATA[淡泊以明智　宁静而志远]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[(Tians)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>菩提树下</title>
	<url>http://tians.lnfs.net/images/logos.gif</url>
	<link>http://tians.lnfs.net/</link>
	<description>菩提树下</description>
</image>

			<item>
			<link>http://tians.lnfs.net/article.asp?id=215</link>
			<title><![CDATA[asp读EXIF]]></title>
			<author>(Tians)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Tue,06 Jan 2009 09:05:32 +0800</pubDate>
			<guid>http://tians.lnfs.net/default.asp?id=215</guid>
		<description><![CDATA[glabal.css<br/><br/>body{<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-size:12px;<br/>&nbsp;&nbsp;&nbsp;&nbsp;margin:0px auto;<br/>&nbsp;&nbsp;&nbsp;&nbsp;padding:0px;<br/>&nbsp;&nbsp;&nbsp;&nbsp;text-align:center;<br/>&nbsp;&nbsp;&nbsp;&nbsp;background:#FFF;<br/>&nbsp;&nbsp;&nbsp;&nbsp;color:#333333;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-family: &#34;新宋体&#34;, Helvetica, Arial, sans-serif; <br/>}<br/>#container {width:900px;background:#FFF;margin:0px auto;padding:0px;text-align:center;}<br/>#header {width:900px;border:1px #333333 dashed;overflow:scroll;height:auto;margin:20px auto;padding:20px 0px 20px 0px;}<br/>#body {border:1px #333333 dashed;width:900px;margin:20px auto;padding:0px; }<br/>.abgcolor {background:#FFF;color:#000000;}<br/>.tableborder {}<br/>index.asp<br/><br/><br/>&lt;!--#include file=&#34;Exif.asp&#34;--&gt;<br/>&lt;!--#include file=&#34;function.asp&#34;--&gt;<br/>&lt;%<br/>F_Name=&#34;01.jpg&#34;<br/>Exif=GetImageExifInfo(F_Name)<br/>&nbsp;&nbsp;&nbsp;&nbsp;if trim(Exif) &lt;&gt; &#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExifSplit=Split(Exif,&#34;|&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=&#34;&lt;!DOCTYPE html PUBLIC &#34;&#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34;&#34; &#34;&#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank" rel="external">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;&#34;&gt;&lt;html xmlns=&#34;&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34;&#34; lang=&#34;&#34;UTF-8&#34;&#34;&gt;&lt;head&gt;&lt;link rel=&#34;&#34;stylesheet&#34;&#34; rev=&#34;&#34;stylesheet&#34;&#34; href=&#34;&#34;glabal.css&#34;&#34; type=&#34;&#34;text/css&#34;&#34; media=&#34;&#34;all&#34;&#34; /&gt;&lt;/head&gt;&lt;body&gt;&lt;div container&#34;&#34;&gt;&lt;div header&#34;&#34;&gt;&lt;img src=&#34;&#34;&#34;&amp;F_Name&amp;&#34;&#34;&#34; alt=&#34;&#34;&gt;&lt;/div&gt;&lt;div style=&#34;&#34;clear: both;height:1px;overflow:hidden;margin-top:-1px;&#34;&#34;&gt;&lt;/div&gt;&lt;div body&#34;&#34;&gt;&lt;Table border=&#34;&#34;0&#34;&#34; cellspacing=&#34;&#34;1&#34;&#34; cellpadding=&#34;&#34;2&#34;&#34; tableborder1&#34;&#34; style=&#34;&#34;width:100%;&#34;&#34;&gt;&lt;tr height=&#34;&#34;18px&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;相机品牌：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$CameraMake}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;相机型号：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$CameraModel}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;拍摄时间：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$DateTime}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;照片尺寸：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ImageDimension}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;编辑工具：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$Software}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;ISO速度：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ISOSpeed}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;光圈：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$FStop}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;曝光时间：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ExposureTime}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;闪光灯：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$Flash}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;曝光补偿：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ExposureBias}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;焦距：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$FocalLength}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;测距模式：&lt;/td&gt;&lt;td {$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$MeteringMode}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;body&gt;&lt;/html&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$abgcolor}&#34;,abgcolor)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$CameraMake}&#34;,ExifSplit(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$CameraModel}&#34;,ExifSplit(1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$DateTime}&#34;,ExifSplit(2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$ImageDimension}&#34;,ExifSplit(3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$Software}&#34;,ExifSplit(4))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$ISOSpeed}&#34;,ExifSplit(5))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$FStop}&#34;,ExifSplit(6))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$ExposureTime}&#34;,ExifSplit(7))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$Flash}&#34;,ExifSplit(8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$ExposureBias}&#34;,ExifSplit(9))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$FocalLength}&#34;,ExifSplit(10))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TemplateHTML=Replace(TemplateHTML,&#34;{$MeteringMode}&#34;,ExifSplit(11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.write TemplateHTML<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.write(&#34;&lt;hr&gt;读取全部信息&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.write GetAllExifInfo(F_Name)<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.write(&#34;&lt;hr&gt;读取16进制信息&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.write GetHexInfo(F_Name)<br/>%&gt;<br/>function.asp<br/><br/><br/><br/> &lt;%<br/>&#39;********************************************************************************<br/>&#39;函数名：GetImageExifInfo<br/>&#39;功&nbsp;&nbsp;能：获取基本的Exif信息<br/>&#39;参&nbsp;&nbsp;数：PicURL 文件路径，相对路径<br/>&#39;返&nbsp;&nbsp;回：用|分隔的字符串<br/>&#39;********************************************************************************<br/>Function GetImageExifInfo(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TempStr, TempSplit<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim ExifInfo<br/>&nbsp;&nbsp;&nbsp;&nbsp;set ExifInfo = new Cls_Exif<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifInfo.ImageFile = Server.MapPath(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On Error Goto 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Goto 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ExifInfo.hasExifInfo() and ExifInfo.GetExifByName(&#34;Camera Make&#34;)&lt;&gt;&#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Camera Make&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Camera Model&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Date Time o&#114;iginal&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Left(TempStr, 4) = &#34;0000&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Date Time Digitized&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Left(TempStr, 4) = &#34;0000&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Date Time&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Left(TempStr, 4) = &#34;0000&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Exif Image Width&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempSplit = ExifInfo.GetExifByName(&#34;Exif Image Height&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TempStr &lt;&gt; &#34;&#34; and TempSplit&lt;&gt;&#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = TempStr &amp; &#34; * &#34; &amp; TempSplit<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Software&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;ISO Speed Ratings&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;FStop&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Exposure Time&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Flash&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Exposure Bias Value&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Focal Length&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempStr = ExifInfo.GetExifByName(&#34;Metering Mode&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetImageExifInfo = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>End Function<br/><br/><br/>Function GetAllExifInfo(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;set ExifInfo = new Cls_Exif<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifInfo.ImageFile = Server.MapPath(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetAllExifInfo=ExifInfo.ExifAllInfo()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>End Function<br/><br/><br/>Function GetHexInfo(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;set ExifInfo = new Cls_Exif<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifInfo.ImageFile = Server.MapPath(picURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetHexInfo=ExifInfo.ExifAllInfo2()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>End Function<br/><br/><br/>Function ExifItem(ItemValue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ItemValue &lt;&gt; &#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExifItem = ExifItem &amp; Server.HtmlEnCode(ItemValue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExifItem = ExifItem &amp; &#34;未知&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>End Function<br/>%&gt;<br/>Exif.asp<br/><br/> &lt;%<br/>&#39;********************************************************************************<br/>&#39;塞北的雪(sAiBeIdExUe) 修改整理版<br/>&#39;增加了几个函数，改正了原程序中一些细节部分<br/>&#39;2006-3-9 10:31<br/>&#39;********************************************************************************<br/>&#39;类名：Cls_Exif<br/>&#39;功能：获取图片信息<br/>&#39;返回：用|分隔的字符串<br/>&#39;********************************************************************************<br/>const IFD_IDX_Tag_No = 0<br/>const IFD_IDX_Tag_Name = 1<br/>const IFD_IDX_Data_Format = 2<br/>const IFD_IDX_Components = 3<br/>const IFD_IDX_Value = 4<br/>const IFD_IDX_Value_Desc = 5<br/>const IFD_IDX_OffsetToValue = 6<br/>&#39;********************************************************************************<br/>&#39;函数名：<br/>&#39;功&nbsp;&nbsp;能：<br/>&#39;参&nbsp;&nbsp;数：<br/>&#39;返&nbsp;&nbsp;回：<br/>&#39;********************************************************************************<br/>Class Cls_Exif<br/> Private ExifLookup<br/> Private Offset_to_IFD0<br/> Private Offset_to_APP1<br/> Private Offset_to_TIFF<br/> Private Length_of_APP1<br/> Private Offset_to_Next_IFD<br/> Private IFDDirectory<br/> Private Offset_to_ExifSubIFD<br/> Private ImageFileName<br/> Private IsLoaded<br/> Private ExifTemp<br/>&#39;********************************************************************************<br/>&#39;函数名：Class_Initialize<br/>&#39;功&nbsp;&nbsp;能：类初始化，不需要调用,这是一个构造函数<br/>&#39;返&nbsp;&nbsp;回：无<br/>&#39;********************************************************************************<br/> Private Sub Class_Initialize()<br/>&nbsp;&nbsp;set ExifLookup = Server.Cr&#101;ateObject(&#34;Scripting.Dictionary&#34;)<br/>&nbsp;&nbsp;&#39;定义字典<br/>&nbsp;&nbsp;&#39;IFD0 Tags<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Image Description&#34;, &#34;010E&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Camera Make&#34;, &#34;010F&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Camera Model&#34;, &#34;0110&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Orientation&#34;, &#34;0112&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;X Resolution&#34;, &#34;011A&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Y Resolution&#34;, &#34;011B&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Resolution Unit&#34;, &#34;0128&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Software&#34;, &#34;0131&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Date Time&#34;, &#34;0132&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;White Point&#34;, &#34;013E&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Primary Chromaticities&#34;, &#34;013F&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Coefficients&#34;, &#34;0211&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Positioning&#34;, &#34;0213&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Reference Black White&#34;, &#34;0214&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Copyright&#34;, &#34;8298&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exif Offset&#34;, &#34;8769&#34;<br/>&nbsp;&nbsp;&#39;ExifSubIFD Tags<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Time&#34;, &#34;829A&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;FStop&#34;, &#34;829D&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Program&#34;, &#34;8822&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;ISO Speed Ratings&#34;, &#34;8827&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exif Version&#34;, &#34;9000&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Date Time o&#114;iginal&#34;, &#34;9003&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Date Time Digitized&#34;, &#34;9004&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Components Configuration&#34;, &#34;9101&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Compressed Bits Per Pixel&#34;, &#34;9102&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Shutter Speed Value&#34;, &#34;9201&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Aperture Value&#34;, &#34;9202&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Brightness Value&#34;, &#34;9203&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Bias Value&#34;, &#34;9204&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Max Aperture Value&#34;, &#34;9205&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Subject Distance&#34;, &#34;9206&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Metering Mode&#34;, &#34;9207&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Light Source&#34;, &#34;9208&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Flash&#34;, &#34;9209&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Focal Length&#34;, &#34;920A&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Maker Note&#34;, &#34;927C&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;User Comment&#34;, &#34;9286&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Subsec Time&#34;, &#34;9290&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Subsec Time o&#114;iginal&#34;, &#34;9291&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Subsec Time Digitized&#34;, &#34;9292&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Flash Pix Version&#34;, &#34;A000&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Color Space&#34;, &#34;A001&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exif Image Width&#34;, &#34;A002&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exif Image Height&#34;, &#34;A003&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Related Sound File&#34;, &#34;A004&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exif Interoperability Offset&#34;, &#34;A005&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Focal Plane X Resolution&#34;, &#34;A20E&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Focal Plane Y Resolution&#34;, &#34;A20F&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Focal Plane Resolution Unit&#34;, &#34;A210&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Index&#34;, &#34;A215&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Sensing Method&#34;, &#34;A217&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;File Source&#34;, &#34;A300&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Scene Type&#34;, &#34;A301&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;CFA Pattern&#34;, &#34;A302&#34;<br/>&nbsp;&nbsp;&#39;Interoperability IFD Tags<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Interoperability Index&#34;, &#34;01&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Interoperability Version&#34;, &#34;02&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Related Image File Format&#34;, &#34;1000&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Related Image Width&#34;, &#34;1001&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Related Image Length&#34;, &#34;1002&#34;<br/>&nbsp;&nbsp;&#39;IFD1 Tags<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Image Width&#34;, &#34;0100&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Image Height&#34;, &#34;0101&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Bits Per Sample&#34;, &#34;0102&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Compression&#34;, &#34;0103&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Photometric Interpretation&#34;, &#34;0106&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Strip Offsets&#34;, &#34;0111&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Sample Per Pixel&#34;, &#34;0115&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Rows Per Strip&#34;, &#34;0116&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Strip Byte Counts&#34;, &#34;0117&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;X Resolution 2&#34;, &#34;011A&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Y Resolution 2&#34;, &#34;011B&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Planar Configuration&#34;, &#34;011C&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Resolution Unit 2&#34;, &#34;0128&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;JPEG Interchange Format&#34;, &#34;0201&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;JPEG Interchange Format Length&#34;, &#34;0202&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Coeffecients&#34;, &#34;0211&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Sub Sampling&#34;, &#34;0212&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Positioning 2&#34;, &#34;0213&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Reference Black White 2&#34;, &#34;0214&#34;<br/>&nbsp;&nbsp;&#39;Misc Tags<br/>&nbsp;&nbsp;ExifLookup.Add &#34;New Subfile Type&#34;, &#34;FE&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Subfile Type&#34;, &#34;FF&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Transfer Function&#34;, &#34;012D&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Artist&#34;, &#34;013B&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Predictor&#34;, &#34;013D&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Tile Width&#34;, &#34;0142&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Tile Length&#34;, &#34;0143&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Tile Offsets&#34;, &#34;0144&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Tile Byte Counts&#34;, &#34;0145&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Sub IFDs&#34;, &#34;014A&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;JPEG Tables&#34;, &#34;015B&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;CFA Repeat Pattern Dim&#34;, &#34;828D&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;CFA Pattern 2&#34;, &#34;828E&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Battery Level&#34;, &#34;828F&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;IPTC_NAA&#34;, &#34;83BB&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Inter Color Profile&#34;, &#34;8773&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Spectral Sensitivity&#34;, &#34;8824&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;GPS Info&#34;, &#34;8825&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;OECF&#34;, &#34;8828&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Interlace&#34;, &#34;8829&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Time Zone Offset&#34;, &#34;882A&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Self Timer Mode&#34;, &#34;882B&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Flash Energy&#34;, &#34;920B&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Spatial Frequency Response&#34;, &#34;920C&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Noise&#34;, &#34;920D&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Image Number&#34;, &#34;9211&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Security Classification&#34;, &#34;9212&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Image History&#34;, &#34;9213&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Subject Location&#34;, &#34;9214&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Index 2&#34;, &#34;9215&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;TIFFEP Standard ID&#34;, &#34;9216&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Flash Energy 2&#34;, &#34;A20B&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Spatial Frequency Response 2&#34;, &#34;A20C&#34;<br/>&nbsp;&nbsp;ExifLookup.Add &#34;Subject Location 2&#34;, &#34;A214&#34;<br/>&nbsp;&nbsp;ExifTemp=array(0)<br/>&nbsp;&nbsp;IFDDirectory = array(0)<br/> End Sub<br/> <br/> Private Sub class_terminate()<br/> End Sub<br/><br/>Public Property Let ImageFile(ByVal vNewValue)<br/>&nbsp;&nbsp;ImageFileName = vNewValue<br/>&nbsp;&nbsp;LoadImage ImageFileName<br/> End Property<br/><br/>Public Property Get ImageFile()<br/>&nbsp;&nbsp;ImageFile=ImageFileName<br/> End Property<br/><br/>Public Function LookupExifTag(which)<br/>&nbsp;&nbsp;dim item<br/>&nbsp;&nbsp;for each item in ExifLookup<br/>&nbsp;&nbsp; if ExifLookup(item) = which then<br/>&nbsp;&nbsp;&nbsp;&nbsp;LookupExifTag = item<br/>&nbsp;&nbsp;&nbsp;&nbsp;exit function<br/>&nbsp;&nbsp; end if<br/>&nbsp;&nbsp;next<br/>&nbsp;&nbsp;LookupExifTag = which<br/> End Function<br/>&#39;********************************************************************************<br/>&#39;函数名：hasExifInfo<br/>&#39;功&nbsp;&nbsp;能：检测是否存在Exif信息<br/>&#39;参&nbsp;&nbsp;数：无<br/>&#39;返&nbsp;&nbsp;回：无<br/>&#39;********************************************************************************<br/> Public Function hasExifInfo()<br/>&nbsp;&nbsp;If IsLoaded = False o&#114; ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp; hasExifInfo = False<br/>&nbsp;&nbsp;ElseIf UBound(IFDDirectory)&lt;1 Then<br/>&nbsp;&nbsp; hasExifInfo = False<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; hasExifInfo = True<br/>&nbsp;&nbsp;End If<br/> End Function<br/>&#39;********************************************************************************<br/>&#39;函数名：GetExifByName<br/>&#39;功&nbsp;&nbsp;能：获取图片的指定Exif字段<br/>&#39;参&nbsp;&nbsp;数：ExifTag&nbsp;&nbsp;Exif字段的标志，具体内容参考类初始化代码<br/>&#39;返&nbsp;&nbsp;回：返回图片的指定Exif字段<br/>&#39;********************************************************************************<br/> Public Function GetExifByName(ExifTag)<br/>&nbsp;&nbsp;Dim i<br/>&nbsp;&nbsp;If IsLoaded = False And ImageFileName &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp; LoadImage (ImageFileName)<br/>&nbsp;&nbsp;ElseIf IsLoaded = False And ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp; Exit Function<br/>&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;For i = 0 To UBound(IFDDirectory) - 1<br/>&nbsp;&nbsp; If IFDDirectory(i)(IFD_IDX_Tag_Name) = ExifTag Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;if IFDDirectory(i)(IFD_IDX_Value_Desc) &lt;&gt; &#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp; GetExifByName = IFDDirectory(i)(IFD_IDX_Value_Desc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp; GetExifByName = IFDDirectory(i)(IFD_IDX_Value)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit For<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;Next<br/> End Function<br/>&#39;********************************************************************************<br/>&#39;函数名：LoadImage<br/>&#39;功&nbsp;&nbsp;能：读入图片<br/>&#39;参&nbsp;&nbsp;数：picFile&nbsp;&nbsp;图片地址<br/>&#39;返&nbsp;&nbsp;回：无<br/>&#39;********************************************************************************<br/> Private sub LoadImage(picFile)<br/>&nbsp;&nbsp;If ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp; ImageFileName = picFile<br/>&nbsp;&nbsp; If ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit sub<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;OpenJPGFile ImageFileName<br/>&nbsp;&nbsp;If InspectJPGFile = False Then<br/>&nbsp;&nbsp; IsLoaded = False<br/>&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;If IsIntel Then<br/>&nbsp;&nbsp; Offset_to_IFD0 = ByteToLong(ExifTemp(Offset_to_APP1 + 17), ExifTemp(Offset_to_APP1 + 16), ExifTemp(Offset_to_APP1 + 15), ExifTemp(Offset_to_APP1 + 14))<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; Offset_to_IFD0 = ByteToLong(ExifTemp(Offset_to_APP1 + 14), ExifTemp(Offset_to_APP1 + 15), ExifTemp(Offset_to_APP1 + 16), ExifTemp(Offset_to_APP1 + 17))<br/>&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;IsLoaded = True<br/>&nbsp;&nbsp;GetDirectoryEntries Offset_to_TIFF + Offset_to_IFD0<br/>&nbsp;&nbsp;MakeSenseOfMeaninglessValues<br/> End sub<br/><br/>Private Function InspectJPGFile()<br/>&nbsp;&nbsp;Dim i<br/>if UBound(ExifTemp)&lt;=0 then<br/>&nbsp;&nbsp; InspectJPGFile = False<br/>&nbsp;&nbsp; Exit Function<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;If ExifTemp(0) &lt;&gt; &amp;HFF And ExifTemp(1) &lt;&gt; &amp;HD8 Then<br/>&nbsp;&nbsp; InspectJPGFile = False<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; For i = 2 To UBound(ExifTemp) - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;If ExifTemp(i) = &amp;HFF And ExifTemp(i + 1) = &amp;HE1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_APP1 = i<br/>&nbsp;&nbsp;&nbsp;&nbsp; Exit For<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp; If Offset_to_APP1 = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;InspectJPGFile = False<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; Offset_to_TIFF = Offset_to_APP1 + 10<br/>&nbsp;&nbsp; Length_of_APP1 = ByteToInt(ExifTemp(Offset_to_APP1 + 2), ExifTemp(Offset_to_APP1 + 3))<br/>&nbsp;&nbsp; If Not (ExifTemp(Offset_to_APP1 + 4) = ASC(&#34;E&#34;) And ExifTemp(Offset_to_APP1 + 5) = ASC(&#34;x&#34;) And ExifTemp(Offset_to_APP1 + 6) = ASC(&#34;i&#34;) And ExifTemp(Offset_to_APP1 + 7) = ASC(&#34;f&#34;)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;InspectJPGFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; InspectJPGFile = True<br/>&nbsp;&nbsp;End If<br/> End Function<br/> <br/> Private Function IsIntel()<br/>&nbsp;&nbsp;If ExifTemp(Offset_to_TIFF) = &amp;H49 Then<br/>&nbsp;&nbsp; IsIntel = True<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; IsIntel = False<br/>&nbsp;&nbsp;End If<br/> End Function<br/> <br/> Private Function OpenJPGFile(FileName)<br/>&nbsp;&nbsp;const TristateUseDefault = -2<br/>&nbsp;&nbsp;const TristateTrue = -1<br/>&nbsp;&nbsp;const TristateFalse = 0<br/>&nbsp;&nbsp;const ForReading = 1<br/>&nbsp;&nbsp;const ForWriting = 2<br/>&nbsp;&nbsp;const ForAppending = 8<br/>&nbsp;&nbsp;Dim Ascii, LastByte, CurByte, SOSFound<br/>&nbsp;&nbsp;Dim FSO, File, i<br/>&nbsp;&nbsp;If Not FileName = &#34;&#34; Then<br/>&nbsp;&nbsp; If InStr(1, FileName, &#34;:\&#34;) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;FileName = Server.MapPath(FileName)<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; Set FSO = Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>&nbsp;&nbsp; If FSO.FileExists(FileName) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set File = Server.Cr&#101;ateObject(&#34;ADODB.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp; File.Type = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; File.Mode = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp; File.Open <br/>&nbsp;&nbsp;&nbsp;&nbsp;File.LoadFromFile FileName<br/>&nbsp;&nbsp;&nbsp;&nbsp;i = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;While Not File.EOS and SOSFound = false<br/>&nbsp;&nbsp;&nbsp;&nbsp; Ascii = ascb(File.Read(1))<br/>&nbsp;&nbsp;&nbsp;&nbsp; LastByte = CurByte<br/>&nbsp;&nbsp;&nbsp;&nbsp; CurByte = Ascii<br/>&nbsp;&nbsp;&nbsp;&nbsp; if (LastByte = &amp;HFF and CurByte = &amp;HDA) o&#114; i &gt; 100000 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOSFound = true<br/>&nbsp;&nbsp;&nbsp;&nbsp; end if<br/>&nbsp;&nbsp;&nbsp;&nbsp; ExifTemp(i) = CurByte<br/>&nbsp;&nbsp;&nbsp;&nbsp; i = i + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReDim Preserve ExifTemp(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Wend<br/>&nbsp;&nbsp;&nbsp;&nbsp;File.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set File = Nothing<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; Set FSO = Nothing<br/>&nbsp;&nbsp;End If<br/> end function<br/>&nbsp;&nbsp;<br/>Private Sub GetDirectoryEntries(Offset)<br/>&nbsp;&nbsp;const ExifOffset = &#34;8769&#34;<br/>&nbsp;&nbsp;const MakerNote = &#34;927C&#34;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;const m_BYTE = 1<br/>&nbsp;&nbsp;const m_STRING = 2<br/>&nbsp;&nbsp;const m_SHORT = 3<br/>&nbsp;&nbsp;const m_LONG = 4<br/>&nbsp;&nbsp;const m_RATIONAL = 5<br/>&nbsp;&nbsp;const m_SBYTE = 6<br/>&nbsp;&nbsp;const m_UNDEFINED = 7<br/>&nbsp;&nbsp;const m_SSHORT = 8<br/>&nbsp;&nbsp;const m_SLONG = 9<br/>&nbsp;&nbsp;const m_SRATIONAL = 10<br/>&nbsp;&nbsp;const m_SINGLE = 11<br/>&nbsp;&nbsp;const m_DOUBLE = 12<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;Dim No_of_Entries<br/>&nbsp;&nbsp;Dim Upper_IFDDirectory<br/>&nbsp;&nbsp;Dim NewDimensions<br/>&nbsp;&nbsp;Dim Processed_ExifSubIFD<br/>&nbsp;&nbsp;Dim BytesPerComponent<br/>&nbsp;&nbsp;Dim Offset_to_MakerNote<br/>&nbsp;&nbsp;Dim i, j, k<br/>&nbsp;&nbsp;Do<br/>&nbsp;&nbsp; If IsIntel Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;No_of_Entries = ByteToInt(ExifTemp(Offset + 1), ExifTemp(Offset + 0))<br/>&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;No_of_Entries = ByteToInt(ExifTemp(Offset + 0), ExifTemp(Offset + 1))<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp; Upper_IFDDirectory = UBound(IFDDirectory)<br/>&nbsp;&nbsp; On Error GoTo 0<br/>&nbsp;&nbsp; NewDimensions = Upper_IFDDirectory + No_of_Entries<br/>&nbsp;&nbsp; ReDim Preserve IFDDirectory(NewDimensions)<br/>&nbsp;&nbsp; For i = 1 To No_of_Entries<br/>&nbsp;&nbsp;&nbsp;&nbsp;k = Upper_IFDDirectory + i - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k) = array(null,null,null,null,null,null,null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IsIntel Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Tag_No) = Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 1)) &amp; Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 0))<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Data_Format) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 3), ExifTemp((Offset + 2) + ((i - 1) * 12) + 2))<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Components) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 7), ExifTemp((Offset + 2) + ((i - 1) * 12) + 6), ExifTemp((Offset + 2) + ((i - 1) * 12) + 5), ExifTemp((Offset + 2) + ((i - 1) * 12) + 4))<br/>&nbsp;&nbsp;&nbsp;&nbsp; Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Data_Format)<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_BYTE, m_SBYTE<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToByte((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = &#34;00&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_STRING, m_UNDEFINED<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToStr((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToStr(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_SHORT, m_SSHORT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Components)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10)) + ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_LONG, m_SLONG<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_RATIONAL, m_SRATIONAL<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 8<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 3), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 2), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 1), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 0)) &amp; &#34;/&#34; &amp; ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 7), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 6), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 5), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 4))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = &#34;0/0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Tag_No) = Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 0)) &amp; Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Data_Format) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 2), ExifTemp((Offset + 2) + ((i - 1) * 12) + 3))<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Components) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 4), ExifTemp((Offset + 2) + ((i - 1) * 12) + 5), ExifTemp((Offset + 2) + ((i - 1) * 12) + 6), ExifTemp((Offset + 2) + ((i - 1) * 12) + 7))<br/>&nbsp;&nbsp;&nbsp;&nbsp; Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Data_Format)<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_BYTE, m_SBYTE<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToByte((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = &#34;00&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_STRING, m_UNDEFINED<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToStr((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToStr(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_SHORT, m_SSHORT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Components)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9)) + ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1, Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_LONG, m_SLONG<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1, Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Case m_RATIONAL, m_SRATIONAL<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 8<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 0), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 1), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 2), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 3)) &amp; &#34;/&#34; &amp; ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 4), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 5), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 6), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 7))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = &#34;0/0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Tag_No) = MakerNote Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_MakerNote = IFDDirectory(k)(IFD_IDX_OffsetToValue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Tag_No) = ExifOffset Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_ExifSubIFD = CLng(IFDDirectory(k)(IFD_IDX_Value))<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Tag_Name) = LookupExifTag(IFDDirectory(k)(IFD_IDX_Tag_No))<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp; If IsIntel Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Not Processed_ExifSubIFD Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_Next_IFD = ByteToLong(ExifTemp(Offset + 2 + (No_of_Entries * 12) + 3), ExifTemp(Offset + 2 + (No_of_Entries * 12) + 2), ExifTemp(Offset + 2 + (No_of_Entries * 12) + 1), ExifTemp(Offset + 2 + (No_of_Entries * 12) + 0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_Next_IFD = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Not Processed_ExifSubIFD Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_Next_IFD = ByteToLong(ExifTemp(Offset + 2 + (No_of_Entries * 12) + 0), ExifTemp(Offset + 2 + (No_of_Entries * 12) + 1), ExifTemp(Offset + 2 + (No_of_Entries * 12) + 2), ExifTemp(Offset + 2 + (No_of_Entries * 12) + 3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_Next_IFD = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; If Offset_to_Next_IFD = 0 And Processed_ExifSubIFD = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Offset_to_Next_IFD = Offset_to_ExifSubIFD<br/>&nbsp;&nbsp;&nbsp;&nbsp;Processed_ExifSubIFD = True<br/>&nbsp;&nbsp; ElseIf Processed_ExifSubIFD = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + Offset_to_Next_IFD + 2 &gt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_Next_IFD = Offset_to_ExifSubIFD<br/>&nbsp;&nbsp;&nbsp;&nbsp; Processed_ExifSubIFD = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; Offset = Offset_to_TIFF + Offset_to_Next_IFD<br/>&nbsp;&nbsp;Loop While Offset_to_Next_IFD &lt;&gt; 0<br/>&nbsp;&nbsp;If Offset_to_MakerNote &lt;&gt; 0 Then<br/>&nbsp;&nbsp; &#39;ProcessMakerNote Offset_to_MakerNote + Offset_to_TIFF<br/>&nbsp;&nbsp;End If<br/> End Sub<br/><br/><br/> Private Function Hex0(nValue)<br/>&nbsp;&nbsp;Hex0 = Right(&#34;00&#34; &amp; Hex(nValue), 2)<br/> End Function<br/> <br/> Private Function ByteToInt(Byte1, Byte2)<br/>&nbsp;&nbsp;If Byte1 &lt; 128 Then<br/>&nbsp;&nbsp; ByteToInt = Byte1 * 256 + Byte2<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; ByteToInt = Byte2 - (256 - Byte1) * 256<br/>&nbsp;&nbsp;End If<br/> End Function<br/> <br/> Private Function ByteToLong(Byte1, Byte2, Byte3, Byte4)<br/>&nbsp;&nbsp;If Byte1 &lt; 128 Then<br/>&nbsp;&nbsp; ByteToLong = ((Byte1 * 256 + Byte2) * 256 + Byte3) * 256 + Byte4<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; ByteToLong = Byte4 - (((256 - Byte1) * 256 - Byte2) * 256 - Byte3) * 256<br/>&nbsp;&nbsp;End If<br/> End Function<br/><br/><br/> Private Function ByteToStr(StartOffset, EndOffset)<br/>&nbsp;&nbsp;Dim i<br/>&nbsp;&nbsp;ByteToStr = &#34;&#34;<br/>&nbsp;&nbsp;If StartOffset &gt; EndOffset Then<br/>&nbsp;&nbsp; For i = StartOffset To EndOffset Step -1<br/>&nbsp;&nbsp;&nbsp;&nbsp;If ExifTemp(i) = 0 Then Exit For<br/>&nbsp;&nbsp;&nbsp;&nbsp;If i &gt; EndOffset Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; If ExifTemp(i) &gt;= 128 and ExifTemp(i - 1) &gt;= 128 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteToStr = ByteToStr &amp; Chr(ByteToInt(ExifTemp(i), ExifTemp(StartOffset + i - 1)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = i - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteToStr = ByteToStr &amp; Chr(ExifTemp(i))<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; ByteToStr = ByteToStr &amp; Chr(ExifTemp(i))<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; For i = StartOffset To EndOffset<br/>&nbsp;&nbsp;&nbsp;&nbsp;If ExifTemp(i) = 0 Then Exit For<br/>&nbsp;&nbsp;&nbsp;&nbsp;If i &lt; EndOffset Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; If ExifTemp(i) &gt;= 128 and ExifTemp(i + 1) &gt;= 128 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteToStr = ByteToStr &amp; Chr(ByteToInt(ExifTemp(i), ExifTemp(i + 1)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = i + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteToStr = ByteToStr &amp; Chr(ExifTemp(i))<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; ByteToStr = ByteToStr &amp; Chr(ExifTemp(i))<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;End If<br/> End Function<br/> <br/> Private Function ByteToByte(StartOffset, EndOffset)<br/>&nbsp;&nbsp;Dim i<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;ByteToByte = &#34;&#34;<br/>&nbsp;&nbsp;If StartOffset &gt; EndOffset Then<br/>&nbsp;&nbsp; For i = StartOffset To EndOffset Step -1<br/>&nbsp;&nbsp;&nbsp;&nbsp;If ByteToByte &lt;&gt; &#34;&#34; Then ByteToByte = ByteToByte &amp; &#34; &#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByteToByte = ByteToByte &amp; Hex0(ExifTemp(i))<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;Else<br/>&nbsp;&nbsp; For i = StartOffset To EndOffset<br/>&nbsp;&nbsp;&nbsp;&nbsp;If ByteToByte &lt;&gt; &#34;&#34; Then ByteToByte = ByteToByte &amp; &#34; &#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByteToByte = ByteToByte &amp; Hex0(ExifTemp(i))<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;End If<br/> End Function<br/><br/><br/> Private Function MakeSenseOfMeaninglessValues()<br/>&nbsp;&nbsp;Dim x<br/>&nbsp;&nbsp;Dim TagValues<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;For x = 0 To ubound(IFDDirectory) - 1<br/>&nbsp;&nbsp; Sel&#101;ct Case IFDDirectory(x)(IFD_IDX_Tag_Name)<br/>&nbsp;&nbsp; Case &#34;Orientation&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = array(&#34;未知&#34;,&#34;上左&#34;,&#34;上右&#34;, &#34;下右&#34;, &#34;下左&#34;, &#34;左上&#34;, &#34;右上&#34;, &#34;右下&#34;, &#34;左下&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(x)(IFD_IDX_Value)&gt;=0 and IFDDirectory(x)(IFD_IDX_Value)&lt;ubound(TagValues) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = TagValues(IFDDirectory(x)(IFD_IDX_Value))<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;未知&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp; Case &#34;Metering Mode&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = array(&#34;未知&#34;,&#34;平均&#34;,&#34;偏中心平均&#34;, &#34;点&#34;, &#34;多点&#34;, &#34;图案&#34;, &#34;部分&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(x)(IFD_IDX_Value)&gt;=0 and IFDDirectory(x)(IFD_IDX_Value)&lt;ubound(TagValues) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = TagValues(IFDDirectory(x)(IFD_IDX_Value))<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;未知&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp; Case &#34;FStop&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = Split(IFDDirectory(x)(IFD_IDX_Value), &#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If UBound(TagValues) = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; If CLng(TagValues(1))&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (CLng(TagValues(0)) Mod CLng(TagValues(1))) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;F/&#34; &amp; (CLng(TagValues(0)) \ CLng(TagValues(1)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;F/&#34; &amp; Round(CLng(TagValues(0)) / CLng(TagValues(1)),1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp; Case &#34;Exposure Time&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = Split(IFDDirectory(x)(IFD_IDX_Value), &#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If UBound(TagValues) = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; If CLng(TagValues(1))&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If CLng(TagValues(1)) &gt; CLng(TagValues(0)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (CLng(TagValues(1)) Mod CLng(TagValues(0))) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;1/&#34; &amp; (CLng(TagValues(1)) \ CLng(TagValues(0))) &amp; &#34; 秒&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;1/&#34; &amp; Round(CLng(TagValues(1)) / CLng(TagValues(0)),1) &amp; &#34; 秒&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (CLng(TagValues(0)) Mod CLng(TagValues(1))) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(x)(IFD_IDX_Value_Desc) = CLng(TagValues(0)) \ CLng(TagValues(1)) &amp; &#34; 秒&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(x)(IFD_IDX_Value_Desc) = Round(CLng(TagValues(0)) / CLng(TagValues(1)),1) &amp; &#34; 秒&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp; End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp; Case &#34;Flash&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If (IFDDirectory(x)(IFD_IDX_Value) Mod 2) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;关&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;开&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = IFDDirectory(x)(IFD_IDX_Value) \ 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;If (TagValues Mod 4) = 2 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;[无选通返回]&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ElseIf (TagValues Mod 4) = 3 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;[带选通返回]&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = TagValues \ 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;If (TagValues Mod 4) = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;[强制闪光]&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ElseIf (TagValues Mod 4) = 2 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;[强制关闭]&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ElseIf (TagValues Mod 4) = 3 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;[自动闪光]&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = TagValues \ 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;If (TagValues Mod 2) = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;[无闪光灯]&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = TagValues \ 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;If (TagValues Mod 2) = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;[去红眼]&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; Case &#34;Exposure Bias Value&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = Split(IFDDirectory(x)(IFD_IDX_Value),&#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If UBound(TagValues) = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; If CLng(TagValues(1))&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If CLng(TagValues(0)) &gt; 0 Then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;+ &#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf CLng(TagValues(0)) = 0 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = &#34;- &#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If TagValues(0)&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If CLng(Abs(TagValues(0))) &lt; CLng(Abs(TagValues(1))) And CLng(TagValues(0)) &lt;&gt; 0 Then IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; Round(CLng(Abs(TagValues(0))) / CLng(Abs(TagValues(1))),1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;EV&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp; Case &#34;Focal Length&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TagValues = Split(IFDDirectory(x)(IFD_IDX_Value),&#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If UBound(TagValues) = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; If CLng(TagValues(1))&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(x)(IFD_IDX_Value_Desc) = Round(CLng(TagValues(0)) / CLng(TagValues(1)),1)<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(x)(IFD_IDX_Value_Desc) = IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34; 毫米&#34;<br/>&nbsp;&nbsp; End Sel&#101;ct<br/>&nbsp;&nbsp;Next<br/> End Function <br/><br/><br/>&#39;********************************************************************************<br/>&#39;函数名：ExifAllInfo<br/>&#39;功&nbsp;&nbsp;能：获取图片的全部Exif参数<br/>&#39;参&nbsp;&nbsp;数：无<br/>&#39;返&nbsp;&nbsp;回：一个包含所有参数的HTML字符串<br/>&#39;********************************************************************************<br/> Public Function ExifAllInfo()<br/>&nbsp;&nbsp;ExifAllInfo=&#34;&lt;table border=1&gt;&lt;tr&gt;&lt;th nowrap&gt;#&lt;/td&gt;&lt;th nowrap&gt;Tag HEX&lt;/td&gt;&lt;th nowrap&gt;Tag Name&lt;/td&gt;&lt;th nowrap&gt;Format&lt;/td&gt;&lt;th nowrap&gt;Size&lt;/td&gt;&lt;th nowrap&gt;Offset&lt;/td&gt;&lt;th nowrap&gt;Value&lt;/td&gt;&lt;th nowrap&gt;Value Described&lt;/td&gt;&lt;/tr&gt;&#34;<br/>&nbsp;&nbsp;dim x<br/>&nbsp;&nbsp;for x = 0 to ubound(IFDDirectory) - 1<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;tr&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; x &amp; &#34;&lt;/td&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; IFDDirectory(x)(IFD_IDX_Tag_No) &amp; &#34;&lt;/td&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; IFDDirectory(x)(IFD_IDX_Tag_Name) &amp; &#34;&lt;/td&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; IFDDirectory(x)(IFD_IDX_Data_Format) &amp; &#34;&lt;/td&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; IFDDirectory(x)(IFD_IDX_Components) &amp; &#34;&lt;/td&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; IFDDirectory(x)(IFD_IDX_OffsetToValue) &amp; &#34;&lt;/td&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; IFDDirectory(x)(IFD_IDX_Value) &amp; &#34;&lt;/td&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo=ExifAllInfo&amp; &#34;&lt;td&gt;&#34; &amp; IFDDirectory(x)(IFD_IDX_Value_Desc) &amp; &#34;&lt;/td&gt;&lt;/tr&gt;&#34;<br/>&nbsp;&nbsp;next<br/>&nbsp;&nbsp;ExifAllInfo=ExifAllInfo&amp; &#34;&lt;/table&gt;&#34;<br/> End Function<br/>&#39;********************************************************************************<br/>&#39;函数名：ExifAllInfo2<br/>&#39;功&nbsp;&nbsp;能：读取图片文件头信息<br/>&#39;参&nbsp;&nbsp;数：无<br/>&#39;返&nbsp;&nbsp;回：返回一串16进制HTML字符串<br/>&#39;********************************************************************************<br/> Public Function ExifAllInfo2()<br/>&nbsp;&nbsp;ExifAllInfo2=&#34;&lt;BR&gt;&#34;<br/>&nbsp;&nbsp;dim x<br/>&nbsp;&nbsp;for x = 0 to ubound(ExifTemp)<br/>&nbsp;&nbsp; if x mod 32=0 then ExifAllInfo2=ExifAllInfo2&amp;&#34;&lt;br&gt;&#34;<br/>&nbsp;&nbsp; ExifAllInfo2=ExifAllInfo2 &amp; Hex0(ExifTemp(x)) &amp; CurrentHex &amp;&#34; &#34;<br/>&nbsp;&nbsp;next<br/> End Function<br/>&#39;********************************************************************************<br/>&#39;函数名：ExifAllInfo3<br/>&#39;功&nbsp;&nbsp;能：读取常见信息<br/>&#39;参&nbsp;&nbsp;数：无<br/>&#39;返&nbsp;&nbsp;回：包含常见信息的HTML字符串<br/>&#39;********************************************************************************<br/> Public Function ExifAllInfo3()<br/>&nbsp;&nbsp; ExifAllInfo3 = &#34;&lt;BR&gt;Offset_to_IFD0=&#34; &amp; Offset_to_IFD0<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;Offset_to_APP1=&#34; &amp; Offset_to_APP1<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;Offset_to_TIFF=&#34; &amp; Offset_to_TIFF<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;Length_of_APP1=&#34; &amp; Length_of_APP1<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;Offset_to_Next_IFD=&#34; &amp; Offset_to_Next_IFD<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;UBound(IFDDirectory)=&#34; &amp; UBound(IFDDirectory)<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;Offset_to_ExifSubIFD=&#34; &amp; Offset_to_ExifSubIFD<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;ImageFileName=&#34; &amp; ImageFileName<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;IsLoaded=&#34; &amp; IsLoaded<br/>&nbsp;&nbsp; ExifAllInfo3 = ExifAllInfo3 &amp; &#34;&lt;BR&gt;UBound(ExifTemp)=&#34; &amp; UBound(ExifTemp) &amp; &#34;&lt;BR&gt;&#34;<br/> End Function<br/>End Class<br/>%&gt;]]></description>
		</item>
		
			<item>
			<link>http://tians.lnfs.net/article.asp?id=214</link>
			<title><![CDATA[ASP读取Exif信息无组建实现过程]]></title>
			<author>(Tians)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Tue,06 Jan 2009 09:01:33 +0800</pubDate>
			<guid>http://tians.lnfs.net/default.asp?id=214</guid>
		<description><![CDATA[index.asp<br/><br/><br/>&lt;!--#include file=&#34;Exif.asp&#34;--&gt;<br/>&lt;!--#include file=&#34;function.asp&#34;--&gt;<br/>&lt;%<br/>F_Name=&#34;01.jpg&#34;<br/>Exif=GetImageExifInfo(F_Name)<br/>&nbsp;&nbsp;&nbsp;&nbsp;if trim(Exif) &lt;&gt; &#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExifSplit=Split(Exif,&#34;|&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=&#34;&lt;!DOCTYPE html PUBLIC &#34;&#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34;&#34; &#34;&#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank" rel="external">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;&#34;&gt;&lt;html xmlns=&#34;&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34;&#34; lang=&#34;&#34;UTF-8&#34;&#34;&gt;&lt;head&gt;&lt;link rel=&#34;&#34;stylesheet&#34;&#34; rev=&#34;&#34;stylesheet&#34;&#34; href=&#34;&#34;glabal.css&#34;&#34; type=&#34;&#34;text/css&#34;&#34; media=&#34;&#34;all&#34;&#34; /&gt;&lt;/head&gt;&lt;body&gt;&lt;div id=&#34;&#34;container&#34;&#34;&gt;&lt;div id=&#34;&#34;header&#34;&#34;&gt;&lt;img src=&#34;&#34;&#34;&amp;F_Name&amp;&#34;&#34;&#34; alt=&#34;&#34;&gt;&lt;/div&gt;&lt;div style=&#34;&#34;clear: both;height:1px;overflow:hidden;margin-top:-1px;&#34;&#34;&gt;&lt;/div&gt;&lt;div id=&#34;&#34;body&#34;&#34;&gt;&lt;Table border=&#34;&#34;0&#34;&#34; cellspacing=&#34;&#34;1&#34;&#34; cellpadding=&#34;&#34;2&#34;&#34; class=&#34;&#34;tableborder1&#34;&#34; style=&#34;&#34;width:100%;&#34;&#34;&gt;&lt;tr height=&#34;&#34;18px&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;相机品牌：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$CameraMake}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;相机型号：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$CameraModel}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;拍摄时间：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$DateTime}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;照片尺寸：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ImageDimension}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;编辑工具：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$Software}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;ISO速度：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ISOSpeed}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;光圈：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$FStop}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;曝光时间：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ExposureTime}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;闪光灯：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$Flash}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;曝光补偿：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$ExposureBias}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;tr height=&#34;&#34;18&#34;&#34;&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;焦距：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$FocalLength}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;right&#34;&#34;&gt;测距模式：&lt;/td&gt;&lt;td class=&#34;&#34;{$abgcolor}&#34;&#34; align=&#34;&#34;left&#34;&#34;&gt;&amp;nbsp;&lt;b&gt;{$MeteringMode}&lt;/b&gt;&lt;/td&gt;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;body&gt;&lt;/html&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$abgcolor}&#34;,abgcolor)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$CameraMake}&#34;,ExifSplit(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$CameraModel}&#34;,ExifSplit(1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$DateTime}&#34;,ExifSplit(2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$ImageDimension}&#34;,ExifSplit(3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$Software}&#34;,ExifSplit(4))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$ISOSpeed}&#34;,ExifSplit(5))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$FStop}&#34;,ExifSplit(6))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$ExposureTime}&#34;,ExifSplit(7))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$Flash}&#34;,ExifSplit(8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$ExposureBias}&#34;,ExifSplit(9))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$FocalLength}&#34;,ExifSplit(10))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TemplateHTML=Replace(TemplateHTML,&#34;{$MeteringMode}&#34;,ExifSplit(11))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.write TemplateHTML<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp; response.write(&#34;&lt;hr&gt;读取全部信息&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp; response.write GetAllExifInfo(F_Name)<br/>&nbsp;&nbsp;&nbsp;&nbsp; response.write(&#34;&lt;hr&gt;读取16进制信息&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp; response.write GetHexInfo(F_Name)<br/>%&gt;<br/><br/><br/>function.asp<br/><br/>&lt;%<br/>&#39;********************************************************************************<br/>&#39;函数名：GetImageExifInfo<br/>&#39;功&nbsp;&nbsp;&nbsp;&nbsp; 能：获取基本的Exif信息<br/>&#39;参&nbsp;&nbsp;&nbsp;&nbsp; 数：PicURL 文件路径，相对路径<br/>&#39;返&nbsp;&nbsp;&nbsp;&nbsp; 回：用|分隔的字符串<br/>&#39;********************************************************************************<br/>Function GetImageExifInfo(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TempStr, TempSplit<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim ExifInfo<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;set ExifInfo = new Cls_Exif<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExifInfo.ImageFile = Server.MapPath(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On Error Goto 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Goto 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ExifInfo.hasExifInfo() and ExifInfo.GetExifByName(&#34;Camera Make&#34;)&lt;&gt;&#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Camera Make&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Camera Model&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Date Time o&#114;iginal&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Left(TempStr, 4) = &#34;0000&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Date Time Digitized&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Left(TempStr, 4) = &#34;0000&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Date Time&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Left(TempStr, 4) = &#34;0000&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Exif Image Width&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempSplit = ExifInfo.GetExifByName(&#34;Exif Image Height&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TempStr &lt;&gt; &#34;&#34; and TempSplit&lt;&gt;&#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = TempStr &amp; &#34; * &#34; &amp; TempSplit<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Software&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;ISO Speed Ratings&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;FStop&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Exposure Time&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Flash&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Exposure Bias Value&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Focal Length&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TempStr = ExifInfo.GetExifByName(&#34;Metering Mode&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = GetImageExifInfo &amp; &#34;|&#34; &amp; ExifItem(TempStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImageExifInfo = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>End Function<br/><br/>Function GetAllExifInfo(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;set ExifInfo = new Cls_Exif<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExifInfo.ImageFile = Server.MapPath(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetAllExifInfo=ExifInfo.ExifAllInfo()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>End Function<br/><br/>Function GetHexInfo(PicURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;set ExifInfo = new Cls_Exif<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExifInfo.ImageFile = Server.MapPath(picURL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetHexInfo=ExifInfo.ExifAllInfo2()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set ExifInfo = Nothing<br/>End Function<br/><br/>Function ExifItem(ItemValue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ItemValue &lt;&gt; &#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExifItem = ExifItem &amp; Server.HtmlEnCode(ItemValue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExifItem = ExifItem &amp; &#34;未知&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>End Function<br/>%&gt;<br/><br/>Exif.asp&nbsp;&nbsp;&nbsp;&nbsp;由于发表的时候有长短限制，该文件分几部分贴出来<br/>&lt;%<br/>&#39;********************************************************************************<br/>&#39;塞北的雪(sAiBeIdExUe) 修改整理版<br/>&#39;增加了几个函数，改正了原程序中一些细节部分<br/>&#39;2006-3-9 10:31<br/>&#39;********************************************************************************<br/>&#39;类名：Cls_Exif<br/>&#39;功能：获取图片信息<br/>&#39;返回：用|分隔的字符串<br/>&#39;********************************************************************************<br/>const IFD_IDX_Tag_No = 0<br/>const IFD_IDX_Tag_Name = 1<br/>const IFD_IDX_Data_Format = 2<br/>const IFD_IDX_Components = 3<br/>const IFD_IDX_Value = 4<br/>const IFD_IDX_Value_Desc = 5<br/>const IFD_IDX_OffsetToValue = 6<br/>&#39;********************************************************************************<br/>&#39;函数名：<br/>&#39;功&nbsp;&nbsp;&nbsp;&nbsp;能：<br/>&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数：<br/>&#39;返&nbsp;&nbsp;&nbsp;&nbsp;回：<br/>&#39;********************************************************************************<br/>Class Cls_Exif<br/>Private ExifLookup<br/>Private Offset_to_IFD0<br/>Private Offset_to_APP1<br/>Private Offset_to_TIFF<br/>Private Length_of_APP1<br/>Private Offset_to_Next_IFD<br/>Private IFDDirectory<br/>Private Offset_to_ExifSubIFD<br/>Private ImageFileName<br/>Private IsLoaded<br/>Private ExifTemp<br/>&#39;********************************************************************************<br/>&#39;函数名：Class_Initialize<br/>&#39;功&nbsp;&nbsp;&nbsp;&nbsp;能：类初始化，不需要调用,这是一个构造函数<br/>&#39;返&nbsp;&nbsp;&nbsp;&nbsp;回：无<br/>&#39;********************************************************************************<br/>Private Sub Class_Initialize()<br/>&nbsp;&nbsp;&nbsp;&nbsp;set ExifLookup = Server.Cr&#101;ateObject(&#34;Scripting.Dictionary&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;定义字典<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;IFD0 Tags<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Image Description&#34;, &#34;010E&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Camera Make&#34;, &#34;010F&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Camera Model&#34;, &#34;0110&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Orientation&#34;, &#34;0112&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;X Resolution&#34;, &#34;011A&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Y Resolution&#34;, &#34;011B&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Resolution Unit&#34;, &#34;0128&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Software&#34;, &#34;0131&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Date Time&#34;, &#34;0132&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;White Point&#34;, &#34;013E&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Primary Chromaticities&#34;, &#34;013F&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Coefficients&#34;, &#34;0211&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Positioning&#34;, &#34;0213&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Reference Black White&#34;, &#34;0214&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Copyright&#34;, &#34;8298&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exif Offset&#34;, &#34;8769&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;ExifSubIFD Tags<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Time&#34;, &#34;829A&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;FStop&#34;, &#34;829D&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Program&#34;, &#34;8822&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;ISO Speed Ratings&#34;, &#34;8827&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exif Version&#34;, &#34;9000&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Date Time o&#114;iginal&#34;, &#34;9003&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Date Time Digitized&#34;, &#34;9004&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Components Configuration&#34;, &#34;9101&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Compressed Bits Per Pixel&#34;, &#34;9102&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Shutter Speed Value&#34;, &#34;9201&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Aperture Value&#34;, &#34;9202&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Brightness Value&#34;, &#34;9203&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Bias Value&#34;, &#34;9204&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Max Aperture Value&#34;, &#34;9205&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Subject Distance&#34;, &#34;9206&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Metering Mode&#34;, &#34;9207&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Light Source&#34;, &#34;9208&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Flash&#34;, &#34;9209&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Focal Length&#34;, &#34;920A&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Maker Note&#34;, &#34;927C&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;User Comment&#34;, &#34;9286&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Subsec Time&#34;, &#34;9290&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Subsec Time o&#114;iginal&#34;, &#34;9291&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Subsec Time Digitized&#34;, &#34;9292&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Flash Pix Version&#34;, &#34;A000&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Color Space&#34;, &#34;A001&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exif Image Width&#34;, &#34;A002&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exif Image Height&#34;, &#34;A003&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Related Sound File&#34;, &#34;A004&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exif Interoperability Offset&#34;, &#34;A005&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Focal Plane X Resolution&#34;, &#34;A20E&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Focal Plane Y Resolution&#34;, &#34;A20F&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Focal Plane Resolution Unit&#34;, &#34;A210&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Index&#34;, &#34;A215&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Sensing Method&#34;, &#34;A217&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;File Source&#34;, &#34;A300&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Scene Type&#34;, &#34;A301&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;CFA Pattern&#34;, &#34;A302&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Interoperability IFD Tags<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Interoperability Index&#34;, &#34;01&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Interoperability Version&#34;, &#34;02&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Related Image File Format&#34;, &#34;1000&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Related Image Width&#34;, &#34;1001&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Related Image Length&#34;, &#34;1002&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;IFD1 Tags<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Image Width&#34;, &#34;0100&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Image Height&#34;, &#34;0101&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Bits Per Sample&#34;, &#34;0102&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Compression&#34;, &#34;0103&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Photometric Interpretation&#34;, &#34;0106&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Strip Offsets&#34;, &#34;0111&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Sample Per Pixel&#34;, &#34;0115&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Rows Per Strip&#34;, &#34;0116&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Strip Byte Counts&#34;, &#34;0117&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;X Resolution 2&#34;, &#34;011A&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Y Resolution 2&#34;, &#34;011B&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Planar Configuration&#34;, &#34;011C&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Resolution Unit 2&#34;, &#34;0128&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;JPEG Interchange Format&#34;, &#34;0201&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;JPEG Interchange Format Length&#34;, &#34;0202&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Coeffecients&#34;, &#34;0211&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Sub Sampling&#34;, &#34;0212&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;YCbCr Positioning 2&#34;, &#34;0213&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Reference Black White 2&#34;, &#34;0214&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Misc Tags<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;New Subfile Type&#34;, &#34;FE&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Subfile Type&#34;, &#34;FF&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Transfer Function&#34;, &#34;012D&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Artist&#34;, &#34;013B&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Predictor&#34;, &#34;013D&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Tile Width&#34;, &#34;0142&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Tile Length&#34;, &#34;0143&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Tile Offsets&#34;, &#34;0144&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Tile Byte Counts&#34;, &#34;0145&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Sub IFDs&#34;, &#34;014A&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;JPEG Tables&#34;, &#34;015B&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;CFA Repeat Pattern Dim&#34;, &#34;828D&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;CFA Pattern 2&#34;, &#34;828E&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Battery Level&#34;, &#34;828F&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;IPTC_NAA&#34;, &#34;83BB&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Inter Color Profile&#34;, &#34;8773&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Spectral Sensitivity&#34;, &#34;8824&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;GPS Info&#34;, &#34;8825&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;OECF&#34;, &#34;8828&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Interlace&#34;, &#34;8829&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Time Zone Offset&#34;, &#34;882A&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Self Timer Mode&#34;, &#34;882B&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Flash Energy&#34;, &#34;920B&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Spatial Frequency Response&#34;, &#34;920C&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Noise&#34;, &#34;920D&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Image Number&#34;, &#34;9211&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Security Classification&#34;, &#34;9212&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Image History&#34;, &#34;9213&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Subject Location&#34;, &#34;9214&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Exposure Index 2&#34;, &#34;9215&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;TIFFEP Standard ID&#34;, &#34;9216&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Flash Energy 2&#34;, &#34;A20B&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Spatial Frequency Response 2&#34;, &#34;A20C&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifLookup.Add &#34;Subject Location 2&#34;, &#34;A214&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ExifTemp=array(0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory = array(0)<br/>End Sub<br/><br/>Private Sub class_terminate()<br/>End Sub <br/>Public Property Let ImageFile(ByVal vNewValue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;ImageFileName = vNewValue<br/>&nbsp;&nbsp;&nbsp;&nbsp;LoadImage ImageFileName<br/>End Property<br/><br/>Public Property Get ImageFile()<br/>&nbsp;&nbsp;&nbsp;&nbsp;ImageFile=ImageFileName<br/>End Property<br/><br/>Public Function LookupExifTag(which)<br/>&nbsp;&nbsp;&nbsp;&nbsp;dim item<br/>&nbsp;&nbsp;&nbsp;&nbsp;for each item in ExifLookup<br/>&nbsp;&nbsp;&nbsp;&nbsp; if ExifLookup(item) = which then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LookupExifTag = item<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit function<br/>&nbsp;&nbsp;&nbsp;&nbsp; end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;next<br/>&nbsp;&nbsp;&nbsp;&nbsp;LookupExifTag = which<br/>End Function<br/>&#39;********************************************************************************<br/>&#39;函数名：hasExifInfo<br/>&#39;功&nbsp;&nbsp;&nbsp;&nbsp;能：检测是否存在Exif信息<br/>&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数：无<br/>&#39;返&nbsp;&nbsp;&nbsp;&nbsp;回：无<br/>&#39;********************************************************************************<br/>Public Function hasExifInfo()<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IsLoaded = False o&#114; ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; hasExifInfo = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;ElseIf UBound(IFDDirectory)&lt;1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; hasExifInfo = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; hasExifInfo = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/>&#39;********************************************************************************<br/>&#39;函数名：GetExifByName<br/>&#39;功&nbsp;&nbsp;&nbsp;&nbsp;能：获取图片的指定Exif字段<br/>&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数：ExifTag&nbsp;&nbsp;&nbsp;&nbsp;Exif字段的标志，具体内容参考类初始化代码<br/>&#39;返&nbsp;&nbsp;&nbsp;&nbsp;回：返回图片的指定Exif字段<br/>&#39;********************************************************************************<br/>Public Function GetExifByName(ExifTag)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim i<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IsLoaded = False And ImageFileName &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; LoadImage (ImageFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;ElseIf IsLoaded = False And ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To UBound(IFDDirectory) - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; If IFDDirectory(i)(IFD_IDX_Tag_Name) = ExifTag Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if IFDDirectory(i)(IFD_IDX_Value_Desc) &lt;&gt; &#34;&#34; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetExifByName = IFDDirectory(i)(IFD_IDX_Value_Desc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetExifByName = IFDDirectory(i)(IFD_IDX_Value)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit For<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>End Function<br/><br/>&#39;********************************************************************************<br/>&#39;函数名：LoadImage<br/>&#39;功&nbsp;&nbsp; 能：读入图片<br/>&#39;参&nbsp;&nbsp; 数：picFile&nbsp;&nbsp; 图片地址<br/>&#39;返&nbsp;&nbsp; 回：无<br/>&#39;********************************************************************************<br/>Private sub LoadImage(picFile)<br/>&nbsp;&nbsp; If ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;ImageFileName = picFile<br/>&nbsp;&nbsp;&nbsp;&nbsp;If ImageFileName = &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Exit sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; OpenJPGFile ImageFileName<br/>&nbsp;&nbsp; If InspectJPGFile = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;IsLoaded = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit Sub<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; If IsIntel Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Offset_to_IFD0 = ByteToLong(ExifTemp(Offset_to_APP1 + 17), ExifTemp(Offset_to_APP1 + 16), ExifTemp(Offset_to_APP1 + 15), ExifTemp(Offset_to_APP1 + 14))<br/>&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;Offset_to_IFD0 = ByteToLong(ExifTemp(Offset_to_APP1 + 14), ExifTemp(Offset_to_APP1 + 15), ExifTemp(Offset_to_APP1 + 16), ExifTemp(Offset_to_APP1 + 17))<br/>&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; IsLoaded = True<br/>&nbsp;&nbsp; GetDirectoryEntries Offset_to_TIFF + Offset_to_IFD0<br/>&nbsp;&nbsp; MakeSenseOfMeaninglessValues<br/>End sub <br/>Private Function InspectJPGFile()<br/>&nbsp;&nbsp; Dim i<br/><br/>&nbsp;&nbsp; if UBound(ExifTemp)&lt;=0 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;InspectJPGFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp; end if<br/>&nbsp;&nbsp; If ExifTemp(0) &lt;&gt; &amp;HFF And ExifTemp(1) &lt;&gt; &amp;HD8 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;InspectJPGFile = False<br/>&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;For i = 2 To UBound(ExifTemp) - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; If ExifTemp(i) = &amp;HFF And ExifTemp(i + 1) = &amp;HE1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset_to_APP1 = i<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit For<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_APP1 = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; InspectJPGFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Offset_to_TIFF = Offset_to_APP1 + 10<br/>&nbsp;&nbsp;&nbsp;&nbsp;Length_of_APP1 = ByteToInt(ExifTemp(Offset_to_APP1 + 2), ExifTemp(Offset_to_APP1 + 3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Not (ExifTemp(Offset_to_APP1 + 4) = ASC(&#34;E&#34;) And ExifTemp(Offset_to_APP1 + 5) = ASC(&#34;x&#34;) And ExifTemp(Offset_to_APP1 + 6) = ASC(&#34;i&#34;) And ExifTemp(Offset_to_APP1 + 7) = ASC(&#34;f&#34;)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; InspectJPGFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp; Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;InspectJPGFile = True<br/>&nbsp;&nbsp; End If<br/>End Function<br/><br/>Private Function IsIntel()<br/>&nbsp;&nbsp; If ExifTemp(Offset_to_TIFF) = &amp;H49 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;IsIntel = True<br/>&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;IsIntel = False<br/>&nbsp;&nbsp; End If<br/>End Function<br/><br/>Private Function OpenJPGFile(FileName)<br/>&nbsp;&nbsp; const TristateUseDefault = -2<br/>&nbsp;&nbsp; const TristateTrue = -1<br/>&nbsp;&nbsp; const TristateFalse = 0<br/>&nbsp;&nbsp; const ForReading = 1<br/>&nbsp;&nbsp; const ForWriting = 2<br/>&nbsp;&nbsp; const ForAppending = 8<br/><br/>&nbsp;&nbsp; Dim Ascii, LastByte, CurByte, SOSFound<br/>&nbsp;&nbsp; Dim FSO, File, i<br/><br/>&nbsp;&nbsp; If Not FileName = &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;If InStr(1, FileName, &#34;:\&#34;) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; FileName = Server.MapPath(FileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set FSO = Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If FSO.FileExists(FileName) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set File = Server.Cr&#101;ateObject(&#34;ADODB.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File.Type = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File.Mode = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File.Open <br/>&nbsp;&nbsp;&nbsp;&nbsp; File.LoadFromFile FileName<br/>&nbsp;&nbsp;&nbsp;&nbsp; i = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp; While Not File.EOS and SOSFound = false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ascii = ascb(File.Read(1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LastByte = CurByte<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CurByte = Ascii<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (LastByte = &amp;HFF and CurByte = &amp;HDA) o&#114; i &gt; 100000 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOSFound = true<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExifTemp(i) = CurByte<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = i + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim Preserve ExifTemp(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp; Wend<br/>&nbsp;&nbsp;&nbsp;&nbsp; File.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set File = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set FSO = Nothing<br/>&nbsp;&nbsp; End If<br/>end function<br/><br/>Private Sub GetDirectoryEntries(Offset)<br/>&nbsp;&nbsp; const ExifOffset = &#34;8769&#34;<br/>&nbsp;&nbsp; const MakerNote = &#34;927C&#34;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; const m_BYTE = 1<br/>&nbsp;&nbsp; const m_STRING = 2<br/>&nbsp;&nbsp; const m_SHORT = 3<br/>&nbsp;&nbsp; const m_LONG = 4<br/>&nbsp;&nbsp; const m_RATIONAL = 5<br/>&nbsp;&nbsp; const m_SBYTE = 6<br/>&nbsp;&nbsp; const m_UNDEFINED = 7<br/>&nbsp;&nbsp; const m_SSHORT = 8<br/>&nbsp;&nbsp; const m_SLONG = 9<br/>&nbsp;&nbsp; const m_SRATIONAL = 10<br/>&nbsp;&nbsp; const m_SINGLE = 11<br/>&nbsp;&nbsp; const m_DOUBLE = 12<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; Dim No_of_Entries<br/>&nbsp;&nbsp; Dim Upper_IFDDirectory<br/>&nbsp;&nbsp; Dim NewDimensions<br/>&nbsp;&nbsp; Dim Processed_ExifSubIFD<br/>&nbsp;&nbsp; Dim BytesPerComponent<br/>&nbsp;&nbsp; Dim Offset_to_MakerNote<br/>&nbsp;&nbsp; Dim i, j, k<br/>&nbsp;&nbsp; Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IsIntel Then<br/>&nbsp;&nbsp;&nbsp;&nbsp; No_of_Entries = ByteToInt(ExifTemp(Offset + 1), ExifTemp(Offset + 0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp; No_of_Entries = ByteToInt(ExifTemp(Offset + 0), ExifTemp(Offset + 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Upper_IFDDirectory = UBound(IFDDirectory)<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error GoTo 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;NewDimensions = Upper_IFDDirectory + No_of_Entries<br/>&nbsp;&nbsp;&nbsp;&nbsp;ReDim Preserve IFDDirectory(NewDimensions)<br/>&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To No_of_Entries<br/>&nbsp;&nbsp;&nbsp;&nbsp; k = Upper_IFDDirectory + i - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k) = array(null,null,null,null,null,null,null)<br/>&nbsp;&nbsp;&nbsp;&nbsp; If IsIntel Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Tag_No) = Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 1)) &amp; Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Data_Format) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 3), ExifTemp((Offset + 2) + ((i - 1) * 12) + 2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Components) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 7), ExifTemp((Offset + 2) + ((i - 1) * 12) + 6), ExifTemp((Offset + 2) + ((i - 1) * 12) + 5), ExifTemp((Offset + 2) + ((i - 1) * 12) + 4))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Data_Format)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case m_BYTE, m_SBYTE<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BytesPerComponent = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = &#34;00&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case m_STRING, m_UNDEFINED<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BytesPerComponent = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToStr((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToStr(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case m_SHORT, m_SSHORT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BytesPerComponent = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Components)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10)) + ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case m_LONG, m_SLONG<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BytesPerComponent = 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End if<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case m_RATIONAL, m_SRATIONAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 11), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 8))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 3), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 2), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 1), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 0)) &amp; &#34;/&#34; &amp; ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 7), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 6), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 5), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 4))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = &#34;0/0&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Tag_No) = Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 0)) &amp; Hex0(ExifTemp((Offset + 2) + ((i - 1) * 12) + 1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Data_Format) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 2), ExifTemp((Offset + 2) + ((i - 1) * 12) + 3))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Components) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 4), ExifTemp((Offset + 2) + ((i - 1) * 12) + 5), ExifTemp((Offset + 2) + ((i - 1) * 12) + 6), ExifTemp((Offset + 2) + ((i - 1) * 12) + 7))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Data_Format)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case m_BYTE, m_SBYTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToByte((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = &#34;00&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case m_STRING, m_UNDEFINED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToStr((Offset + 2) + ((i - 1) * 12) + 8, (Offset + 2) + ((i - 1) * 12) + 8 + IFDDirectory(k)(IFD_IDX_Components) - 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToStr(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue), Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = &#34;&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case m_SHORT, m_SSHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sel&#101;ct Case IFDDirectory(k)(IFD_IDX_Components)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9)) + ByteToInt(ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1, Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case m_LONG, m_SLONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Components) * BytesPerComponent &lt;= 4 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = ByteToByte(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + IFDDirectory(k)(IFD_IDX_Components) - 1, Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_Value) = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case m_RATIONAL, m_SRATIONAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesPerComponent = 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFDDirectory(k)(IFD_IDX_OffsetToValue) = ByteToLong(ExifTemp((Offset + 2) + ((i - 1) * 12) + 8), ExifTemp((Offset + 2) + ((i - 1) * 12) + 9), ExifTemp((Offset + 2) + ((i - 1) * 12) + 10), ExifTemp((Offset + 2) + ((i - 1) * 12) + 11))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) &lt; UBound(ExifTemp) Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 0), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 1), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 2), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 3)) &amp; &#34;/&#34; &amp; ByteToLong(ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 4), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 5), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 6), ExifTemp(Offset_to_TIFF + IFDDirectory(k)(IFD_IDX_OffsetToValue) + 7))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFDDirectory(k)(IFD_IDX_Value) = &#34;0/0&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_Tag_No) = MakerNote Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Offset_to_MakerNote = IFDDirectory(k)(IFD_IDX_OffsetToValue)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IFDDirectory(k)(IFD_IDX_