使用FSO获取bmp、JPG、PNG、GIF文件信息
<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:bmp,GIF,JPG和PNG::
:::原创作品:junyd ::::::
::欧阳东街::::::::::::::::::::::::::
::::
:东方可以从BMP、GIF、JPG和PNG获取字节文件::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
功能getBytes(拉腊米堡国家纪念碑,偏移量,以字节为单位)
昏暗的objfso
昏暗的objftemp
昏暗的objtextstream
昏暗的lngsize
下次继续出错
集objfso = CreateObject(脚本。FileSystemObject )
首先,我们得到的文件大小
集objftemp = objfso.getfile(拉腊米堡国家纪念碑)
lngsize = objftemp大小。
集objftemp =没有
fsoforreading = 1
集objtextstream = objfso.opentextfile(拉腊米堡国家纪念碑,fsoforreading)
如果偏移量大于0,那么
strbuff = objtextstream读(偏移量1)。
最后如果
如果字节=1,则全部!
其中,objtextstream。读(lngsize)'readall
其他的
其中,objtextstream读(字节)。
最后如果
objtextstream。关闭
集objtextstream =没有
集objfso =没有
端功能
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::
:以下是将两个字节转换为一个统一值的函数:
::(小端和大端)::
::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
功能lngconvert(strtemp)
lngconvert = CLNG(ASC(左(strtemp,1))+((ASC(右(strtemp,1))×256 )))))
端功能
功能lngconvert2(strtemp)
lngconvert2 = CLNG(ASC(右(strtemp,1))+((ASC(左(strtemp,1))×256 )))))
端功能
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::
答:这个函数做大部分实际工作,它想试试::
:阅读任何文件:
如果它是一张图表的图像,识别::
::::
:通过:::
':拉腊米堡国家纪念碑= > filespec文件读取:::
宽度:图像宽度:::
高度=图像的高度:::
深度>颜色深度(颜色数):::
::strimagetype = >类型的图像(如GIF,BMP等)::
::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
功能gfxspex(拉腊米堡国家纪念碑,宽度,高度,深度,strimagetype)
昏暗的strpng
昏暗的strgif
昏暗的strbmp
昏暗的strtype
strtype =
strimagetype =(未知)。
gfxspex = false
strpng = CHR(137)CHR(80)CHR(78)
strgif =GIF
strbmp = CHR CHR(77)(66)
strtype = getBytes(拉腊米堡国家纪念碑,0, 3)
如果strtype = strgif然后是GIF
strimagetype =GIF
宽度= lngconvert(getBytes(拉腊米堡国家纪念碑,7, 2))
高度= lngconvert(getBytes(拉腊米堡国家纪念碑,9, 2))
深度= 2 ^((ASC(getBytes(拉腊米堡国家纪念碑,11, 1)),7)+ 1)
gfxspex =真
左(strtype,2)= strbmp然后是BMP
strimagetype =BMP
宽度= lngconvert(getBytes(拉腊米堡国家纪念碑,19, 2))
高度= lngconvert(getBytes(拉腊米堡国家纪念碑,23, 2))
深度= 2 ^(ASC(getBytes(拉腊米堡国家纪念碑,29, 1)))
gfxspex =真
strtype = strpng然后是PNG
strimagetype =PNG
宽度= lngconvert2(getBytes(拉腊米堡国家纪念碑,19, 2))
高度= lngconvert2(getBytes(拉腊米堡国家纪念碑,23, 2))
深度= getBytes(拉腊米堡国家纪念碑,25, 2)
选择案例ASC(右(深度,1))
案例0
深度= 2×(ASC(左(1,深)))
gfxspex =真
案例2
深度= 2×(ASC(左(深度,1))* 3)
gfxspex =真
案例3
深度= 2 ^(ASC(左(深度,1)))8
gfxspex =真
案例4
深度= 2×(ASC(左(深度,1))* 2)
gfxspex =真
案例6
深度= 2×(ASC(左(深度,1))* 4)
gfxspex =真
其他案件
深度= 1
最后选择
其他的
strbuff = getBytes(拉腊米堡国家纪念碑,0,1)从文件中获取所有字节
lngsize = Len(strbuff)
flgfound = 0
strtarget = CHR(255)CHR(216)CHR(255)
flgfound =仪器(strbuff,strtarget)
如果flgfound = 0
退出功能
最后如果
strimagetype =JPG
lngpos = flgfound + 2
exitloop = false
而exitloop =虚假和lngpos < lngsize
而ASC(MID(strbuff,lngpos,1))= 255和lngpos < lngsize
lngpos = lngpos + 1
环
如果ASC(MID(strbuff,lngpos,1))195
lngmarkersize = lngconvert2(MID(strbuff,lngpos + 1, 2))
lngpos = lngpos + lngmarkersize + 1
其他的
exitloop =真
最后如果
环
'
如果ExitLoop = false
宽度= 1
身高= 1
深度= 1
其他的
高度= lngconvert2(MID(strbuff,lngpos + 4, 2))
宽度= lngconvert2(MID(strbuff,lngpos + 6, 2))
深度= 2 ^(ASC(MID(strbuff,lngpos + 8, 1))* 8)
gfxspex =真
最后如果
最后如果
端功能
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::测试::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
为了测试,我们将文件放在C。
集objfso = CreateObject(脚本。FileSystemObject )
集objf = objfso.getfolder(C:)
objfc = objf文件集。
response.write
在objfc F1
如果仪器(ucase(F1。名字),GIF)然后
响应。写f1.name F1。datecreated 大小的F1。
如果gfxspex(f1.path,W,H,C,strtype)=真
response.write WXHC颜色
其他的
response.write
最后如果
response.write
最后如果
下一个
response.write
集objfc =没有
集objf =没有
集objfso =没有
%>