使用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 =没有


%>