• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP > 用FSO获得图片文件的信息(大小,宽,高)

用FSO获得图片文件的信息(大小,宽,高)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了fso 删除文件,fso,fso是什么意思,fso组件,fso.opentextfile等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
<%
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
''::: BMP, GIF, JPG and PNG :::
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
''::: :::
''::: This function gets a specified number of bytes from any :::
''::: file, starting at the offset (base 1) :::
''::: :::
''::: Passed: :::
''::: flnm => Filespec of file to read :::
''::: offset => Offset at which to start reading :::
''::: bytes => How many bytes to read :::
''::: :::
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function GetBytes(flnm, offset, bytes)
Dim objFSO
Dim objFTemp
Dim objTextStream
Dim lngSize
on error resume next
Set objFSO = CreateObject("Scripting.FileSystemObject")

'' First, we get the filesize
Set objFTemp = objFSO.GetFile(flnm)
lngSize = objFTemp.Size
set objFTemp = nothing
fsoForReading = 1
Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading)
if offset > 0 then
strBuff = objTextStream.Read(offset - 1)
end if
if bytes = -1 then '' Get All!
GetBytes = objTextStream.Read(lngSize) ''ReadAll
else
GetBytes = objTextStream.Read(bytes)
end if
objTextStream.Close
set objTextStream = nothing
set objFSO = nothing
end function
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
''::: :::
''::: Functions to convert two bytes to a numeric value (long) :::
''::: (both little-endian and big-endian) :::
''::: :::
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function lngConvert(strTemp)
lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) * 256)))
end function
function lngConvert2(strTemp)
lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 1)) * 256)))
end function

'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
''::: :::
''::: This function does most of the real work. It will attempt :::
''::: to read any file, regardless of the extension, and will :::
''::: identify if it is a graphical image. :::
''::: :::
''::: Passed: :::
''::: flnm => Filespec of file to read :::
''::: width => width of image :::
''::: height => height of image :::
''::: depth => color depth (in number of colors) :::
''::: strImageType=> type of image (e.g. GIF, BMP, etc.) :::
''::: :::
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function gfxSpex(flnm, width, height, depth, strImageType)
dim strPNG
dim strGIF
dim strBMP
dim strType
strType = ""
strImageType = "(unknown)"
gfxSpex = False
strPNG = chr(137) & chr(80) & chr(78)
strGIF = "GIF"
strBMP = chr(66) & chr(77)
strType = GetBytes(flnm, 0, 3)
if strType = strGIF then '' is GIF
strImageType = "GIF"
Width = lngConvert(GetBytes(flnm, 7, 2))
Height = lngConvert(GetBytes(flnm, 9, 2))
Depth = 2 ^ ((asc(GetBytes(flnm, 11, 1)) and 7) + 1)
gfxSpex = True
elseif left(strType, 2) = strBMP then '' is BMP
strImageType = "BMP"
Width = lngConvert(GetBytes(flnm, 19, 2))
Height = lngConvert(GetBytes(flnm, 23, 2))
Depth = 2 ^ (asc(GetBytes(flnm, 29, 1)))
gfxSpex = True
elseif strType = strPNG then '' Is PNG
strImageType = "PNG"
Width = lngConvert2(GetBytes(flnm, 19, 2))
Height = lngConvert2(GetBytes(flnm, 23, 2))
Depth = getBytes(flnm, 25, 2)
select case asc(right(Depth,1))
case 0
Depth = 2 ^ (asc(left(Depth, 1)))
gfxSpex = True
case 2
Depth = 2 ^ (asc(left(Depth, 1)) * 3)
gfxSpex = True
case 3
Depth = 2 ^ (asc(left(Depth, 1))) ''8
gfxSpex = True
case 4
Depth = 2 ^ (asc(left(Depth, 1)) * 2)
gfxSpex = True
case 6
Depth = 2 ^ (asc(left(Depth, 1)) * 4)
gfxSpex = True
case else
Depth = -1
end select

else
strBuff = GetBytes(flnm, 0, -1) '' Get all bytes from file
lngSize = len(strBuff)
flgFound = 0
strTarget = chr(255) & chr(216) & chr(255)
flgFound = instr(strBuff, strTarget)
if flgFound = 0 then
exit function
end if
strImageType = "JPG"
lngPos = flgFound + 2
ExitLoop = false
do while ExitLoop = False and lngPos < lngSize

do while asc(mid(strBuff, lngPos, 1)) = 255 and lngPos < lngSize
lngPos = lngPos + 1
loop
if asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff, lngPos, 1)) > 195 then
lngMarkerSize = lngConvert2(mid(strBuff, lngPos + 1, 2))
lngPos = lngPos + lngMarkerSize + 1
else
ExitLoop = True
end if
loop
''
if ExitLoop = False then
Width = -1
Height = -1
Depth = -1
else
Height = lngConvert2(mid(strBuff, lngPos + 4, 2))
Width = lngConvert2(mid(strBuff, lngPos + 6, 2))
Depth = 2 ^ (asc(mid(strBuff, lngPos + 8, 1)) * 8)
gfxSpex = True
end if

end if
end function

'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
''::: Test Harness :::
'':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

'' To test, we''ll just try to show all files with a .GIF extension in the root of C:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.GetFolder("c:\")
Set objFC = objF.Files
response.write "<table border=""0"" cellpadding=""5"">"
For Each f1 in objFC
if instr(ucase(f1.Name), ".GIF") then
response.write "<tr><td>" & f1.name & "</td><td>" & f1.DateCreated & "</td><td>" & f1.Size & "</td><td>"
if gfxSpex(f1.Path, w, h, c, strType) = true then
response.write w & " x " & h & " " & c & " colors"
else
response.write " "
end if
response.write "</td></tr>"
end if
Next
response.write "</table>"
set objFC = nothing
set objF = nothing
set objFSO = nothing

%>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • asp结合fso实现文件或文件夹创建删除等操作的函数
  • asp下利用fso实现文件夹或文件移动改名等操作函数
  • 使用FSO修改文件夹的名称实现文件转移防盗链
  • asp中FSO复制文件代码
  • 用ASP+FSO生成JS文件
  • FSO文件对象介绍及常用函数
  • ASP中FSO的神奇功能 - 写文件
  • ASP中FSO的神奇功能 - 文件读取
  • 使用FSO按文件大小浏览文件目录并进行删除操作
  • FSO+递归生成文件列表(xml)

相关文章

  • 2017-05-11ASP中DateAdd函数中日期相加或相减使用方法
  • 2017-05-11asp 随机字符串函数
  • 2017-05-11用asp实现批量删除bak文件
  • 2017-05-11ASP万用分页程序
  • 2017-05-11javascript asp教程第四课 同时使用vbscript和javascript
  • 2017-05-11ASP正则表达式清除HTML指定标签的方法
  • 2017-05-11MSXML4.0 版中的新增功能
  • 2017-05-11ASP操作Excel技术总结
  • 2017-05-11两种小偷程序的比较第1/2页
  • 2017-05-11ASP基础入门第十篇(ASP内建对象Server)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 用ASP实现分级权限控制
    • asp中的ckEditor的详细配置小结
    • Asp实现假静态
    • asp select下拉菜单选择图标并实时显示
    • ASP的一些自定义函数整理第1/2页
    • asp获取数据库中表名和字段名的代码
    • asp利用Split函数进行多关键字检索
    • ASP编程入门进阶(十八):FSO组件之文件操作(下)
    • asp提示Server 对象 错误 ASP 0178 : 80070005
    • asp实现防止站外提交内容的两个方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有