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


<% 
''::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
''::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
''::: 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,1)) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值