ASP读取Exif信息无组件实现过程
发布时间:2009-02-09 12:52:00
标签:exif,无组件,16进制,图片,asp
代码都比较容易理解的,主要就是在以16进制读取图片信息那段代码有点乱,其实仔细看看,也没什么的。
glabal.css
body{}{
font-size:12px;
margin:0px auto;
padding:0px;
text-align:center;
background:#FFF;
color:#333333;
font-family: "新宋体", Helvetica, Arial, sans-serif;
}
#container {}{width:900px;background:#FFF;margin:0px auto;padding:0px;text-align:center;}
#header {}{width:900px;border:1px #333333 dashed;overflow:scroll;height:auto;margin:20px auto;padding:20px 0px 20px 0px;}
#body {}{border:1px #333333 dashed;width:900px;margin:20px auto;padding:0px; }
.abgcolor {}{background:#FFF;color:#000000;}
.tableborder {}{}
index.asp
<!--#include file="Exif.asp"-->
<!--#include file="function.asp"-->
<%
F_Name="01.jpg"
Exif=GetImageExifInfo(F_Name)
if trim(Exif) <> "" then
ExifSplit=Split(Exif,"|")
TemplateHTML="<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""><html xmlns=""http://www.w3.org/1999/xhtml"" lang=""UTF-8""><head><link rel=""stylesheet"" rev=""stylesheet"" href=""glabal.css"" type=""text/css"" media=""all"" /></head><body><div id=""container""><div id=""header""><img src="""&F_Name&""" alt=""></div><div style=""clear: both;height:1px;overflow:hidden;margin-top:-1px;""></div><div id=""body""><Table border=""0"" cellspacing=""1"" cellpadding=""2"" class=""tableborder1"" style=""width:100%;""><tr height=""18px"">" & _
"<td class=""{$abgcolor}"" align=""right"">相机品牌:</td><td class=""{$abgcolor}"" align=""left""> <b>{$CameraMake}</b></td>" & _
"<td class=""{$abgcolor}"" align=""right"">相机型号:</td><td class=""{$abgcolor}"" align=""left""> <b>{$CameraModel}</b></td>" & _
"</tr><tr height=""18"">" & _
"<td class=""{$abgcolor}"" align=""right"">拍摄时间:</td><td class=""{$abgcolor}"" align=""left""> <b>{$DateTime}</b></td>" & _
"<td class=""{$abgcolor}"" align=""right"">照片尺寸:</td><td class=""{$abgcolor}"" align=""left""> <b>{$ImageDimension}</b></td>" & _
"</tr><tr height=""18"">" & _
"<td class=""{$abgcolor}"" align=""right"">编辑工具:</td><td class=""{$abgcolor}"" align=""left""> <b>{$Software}</b></td>" & _
"<td class=""{$abgcolor}"" align=""right"">ISO速度:</td><td class=""{$abgcolor}"" align=""left""> <b>{$ISOSpeed}</b></td>" & _
"</tr><tr height=""18"">" & _
"<td class=""{$abgcolor}"" align=""right"">光圈:</td><td class=""{$abgcolor}"" align=""left""> <b>{$FStop}</b></td>" & _
"<td class=""{$abgcolor}"" align=""right"">曝光时间:</td><td class=""{$abgcolor}"" align=""left""> <b>{$ExposureTime}</b></td>" & _
"</tr><tr height=""18"">" & _
"<td class=""{$abgcolor}"" align=""right"">闪光灯:</td><td class=""{$abgcolor}"" align=""left""> <b>{$Flash}</b></td>" & _
"<td class=""{$abgcolor}"" align=""right"">曝光补偿:</td><td class=""{$abgcolor}"" align=""left""> <b>{$ExposureBias}</b></td>" & _
"</tr><tr height=""18"">" & _
"<td class=""{$abgcolor}"" align=""right"">焦距:</td><td class=""{$abgcolor}"" align=""left""> <b>{$FocalLength}</b></td>" & _
"<td class=""{$abgcolor}"" align=""right"">测距模式:</td><td class=""{$abgcolor}"" align=""left""> <b>{$MeteringMode}</b></td>" & _
"</tr></table></div></div><body></html>"
TemplateHTML=Replace(TemplateHTML,"{$abgcolor}",abgcolor)
TemplateHTML=Replace(TemplateHTML,"{$CameraMake}",ExifSplit(0))
TemplateHTML=Replace(TemplateHTML,"{$CameraModel}",ExifSplit(1))
TemplateHTML=Replace(TemplateHTML,"{$DateTime}",ExifSplit(2))
TemplateHTML=Replace(TemplateHTML,"{$ImageDimension}",ExifSplit(3))
TemplateHTML=Replace(TemplateHTML,"{$Software}",ExifSplit(4))
TemplateHTML=Replace(TemplateHTML,"{$ISOSpeed}",ExifSplit(5))
TemplateHTML=Replace(TemplateHTML,"{$FStop}",ExifSplit(6))
TemplateHTML=Replace(TemplateHTML,"{$ExposureTime}",ExifSplit(7))
TemplateHTML=Replace(TemplateHTML,"{$Flash}",ExifSplit(8))
TemplateHTML=Replace(TemplateHTML,"{$ExposureBias}",ExifSplit(9))
TemplateHTML=Replace(TemplateHTML,"{$FocalLength}",ExifSplit(10))
TemplateHTML=Replace(TemplateHTML,"{$MeteringMode}",ExifSplit(11))
response.write TemplateHTML
end if
response.write("<hr>读取全部信息")
response.write GetAllExifInfo(F_Name)
response.write("<hr>读取16进制信息")
response.write GetHexInfo(F_Name)
%>
function.asp
<%
'********************************************************************************
'函数名:GetImageExifInfo
'功 能:获取基本的Exif信息
'参 数:PicURL 文件路径,相对路径
'返 回:用|分隔的字符串
'********************************************************************************
Function GetImageExifInfo(PicURL)
Dim TempStr, TempSplit
Dim ExifInfo
set ExifInfo = new Cls_Exif
On Error Resume Next
ExifInfo.ImageFile = Server.MapPath(PicURL)
If Err<>0 Then
Err.Clear
On Error Goto 0
Set ExifInfo = Nothing
GetImageExifInfo = ""
Exit Function
Else
On Error Goto 0
End if
if ExifInfo.hasExifInfo() and ExifInfo.GetExifByName("Camera Make")<>"" then
TempStr = ExifInfo.GetExifByName("Camera Make")
GetImageExifInfo = ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Camera Model")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Date Time Original")
If Left(TempStr, 4) = "0000" Then
TempStr = ExifInfo.GetExifByName("Date Time Digitized")
End If
If Left(TempStr, 4) = "0000" Then
TempStr = ExifInfo.GetExifByName("Date Time")
End If
If Left(TempStr, 4) = "0000" Then
TempStr = ""
End If
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Exif Image Width")
TempSplit = ExifInfo.GetExifByName("Exif Image Height")
if TempStr <> "" and TempSplit<>"" then
TempStr = TempStr & " * " & TempSplit
else
TempStr = ""
end if
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Software")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("ISO Speed Ratings")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("FStop")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Exposure Time")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Flash")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Exposure Bias Value")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Focal Length")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
TempStr = ExifInfo.GetExifByName("Metering Mode")
GetImageExifInfo = GetImageExifInfo & "|" & ExifItem(TempStr)
else
GetImageExifInfo = ""
end if
Set ExifInfo = Nothing
End Function
Function GetAllExifInfo(PicURL)
set ExifInfo = new Cls_Exif
On Error Resume Next
ExifInfo.ImageFile = Server.MapPath(PicURL)
GetAllExifInfo=ExifInfo.ExifAllInfo()
Set ExifInfo = Nothing
End Function
Function GetHexInfo(PicURL)
set ExifInfo = new Cls_Exif
On Error Resume Next
ExifInfo.ImageFile = Server.MapPath(picURL)
GetHexInfo=ExifInfo.ExifAllInfo2()
Set ExifInfo = Nothing
End Function
Function ExifItem(ItemValue)
if ItemValue <> "" then
ExifItem = ExifItem & Server.HtmlEnCode(ItemValue)
else
ExifItem = ExifItem & "未知"
end if
End Function
%>
0
投稿
猜你喜欢
- Liwu_Items表,CreateTime列建立聚集索引 第一种,sqlserver2005特有的分页语法 代码如下:declare @p
- 在改进SQL Server 7.0系列所实现的安全机制的过程中,Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQ
- XML的未来 现在你已经知道XML。确实,结构有点复杂,而且DTD有各种可以定义文档可以包含的内容的选项。但还不只这些。考虑一个数据交换对其
- 武器档案名称:firebug最新版本:1.7用途:前端调试器必备指数:使用难度:firebug是前端最具盛名的调试器,功能非常强悍。fire
- 大家知道,在js里encodeURIComponent 方法是一个比较常用的编码方法,但因工作需要,在asp里需用到此方法,查了好多资料,没
- 本文通过实例解析了 SQL Server 数据库扩展存储过程,实现远程备份与恢复的方法和步骤实例说明: 环境:win2k+sqlserver
- SQL Server会把经常使用到的数据缓存在内存里(就是数据页缓存),用以提高数据访问速度。因为磁盘访问速度远远低于内存,所以减少磁盘访问
- 代码如下:<% '--------定义部份------------------ Dim XH_P
- 在输入框里面预设一段提示文字,当焦点在输入框的时候清空这段文字,这在目前来说已经不是什么新鲜事了。淘宝的搜索框就用到了这样一种设计:这种设计
- 我们生活在信息繁杂的社会,尤其是在互联网时代,人们开始通过网络开始接触越来越多的信息,那么,如何获取/传递有效而准确的信息将非常重要。在网页
- 数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。围绕数据库的安全性问
- 一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时
- 从某种意义上来说,页面设计(web设计)也就是用户界面设计。有许多技巧可以帮助我们制作出漂亮、实用的界面,这里收集的5个小技巧就会对你有所帮
- 这篇论坛文章主要介绍了Oracle数据库到SQL Server数据库主键的迁移过程,具体内容请参考下文。由于项目需要要将以前Oracle的数
- 我其实是同一天看到Robert Treat几人整理的”Mysql 迁移到Oracle前需要了解的50件事“与Baron Schwartz的”
- 下面给出ORACLE的一种实现方式,要分2步走:1. 建立 SEQUENCE CREATE [ OR REPLACE ] SEQUENCE
- 没有使用动态语句直接报错 错误的 代码如下:alter proc testpapers as begin declare @tems nva
- 很多人都将<数据库设计范式>作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证
- 随滚动条移动的DIV层js代码,无论你的滚动条到哪里这个DIV层就跟到哪里!代码中例举了五个方向的滚动div层例子:包括左上方的div,左下
- 段时间作项目中,遇到使用视图的问题,以前的工作中很少遇到视图,认为直接用表就ok了,何须视图呢?下面我来讲述一下它的功用:以往当我们查询数据