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
%>


猜你喜欢
- 基于 RSA 加密算法的接口鉴权方案假设接口调用者是客户端,接口提供方是服务端,则此方案存在以下规则:客户端需要使用 RSA 算法(1024
- 前言关于mockjs,官网描述的是1.前后端分离2.不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据。3.数据类型丰富4.
- 前言本文通过使用 cpu 版本的 tensorflow 2.4 ,介绍三种方式进行加载和预处理图片数据。这里我们要确保 tensorflow
- 我认为在ASP中最好的办法是用编程实现定时刷新Cache,也就是说给Application中储存的设一个过期时间。当然,在ASP中Appli
- 准备工作(导入库、导入数据)import pandas as pdimport matplotlib.pyplot as pltimport
- 在 邮件报表 之类的开发任务中,需要生成 HTML 表格。使用 Python 生成 HTM
- 函数执行流程def foo1(b,b1=3): print("foo1 called",b,b1)def
- HTML 的空白符处理规则HTML 中的“空白符”包括空格 (space)、制表符 (tab)、换行符 (CR/LF) 三种。我们知道,在默
- type()动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个Hello的cla
- Golang 开发者遇到的许多问题之一是尝试将一个函数的参数设置为可选. 这是一个非常常见的用例, 有些对象应该使用一些基本的默认设置来开箱
- PHP quotemeta() 函数实例在预定义的字符前添加反斜杠:<?php$str = "Hello world. (c
- 主要有以下区别:1、MySQL默认采用的是MyISAM。2、MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默
- 摘要RepVgg通过结构重参数化让VGG再次伟大。 所谓“VGG式”指的是:没有任何分支结构。即通常
- python opencv实现目标跟踪python-opencv3.0新增了一些比较有用的 * 算法这里根据官网示例写了一个 * 类程序只能
- 集中式工作流(不常用)集中式工作流像SVN一样,以中央仓库作为项目所有修改的单点实体。所有修改都提交到 Master分支上。这种方式与 SV
- 注意这里提取到的人脸图片的保存地址要改成自己要保存的地址opencv人脸的检测模型的路径也要更改为自己安装的opencv的人脸检测模型的路径
- 有些使用Z-Blog的用户询问我,怎么实现我的月光博客首页上这种自动图文混排的版式效果,今天我就详细介绍一下在Z-Blog中实现这种图文混排
- 目录01 — Pytest核心功能02 — 创建测试项目03 — 编写测试用例04 — 执行测试用例05 — 数据与脚本分离06 — 参数化
- 原因添加一个文件 config.ini, 理论上说该文件会以ini文件格式打开,但是不知道咋的手贱用Text格式打开了。.ini正确打开方式
- Sublime Text 3纯文本编辑器Package Control(Sublime的包管理器)Sublime Text3中的插件,通过该