BMP,GIF,JPG和PNG
:::
“:::这个函数获取指定的任何::: 的字节数
,开始的偏移量(基数为1):::
“::::::
“ ::合格::::
“::: flnm =>文件规范的文件的阅读:::
“:::偏移=>偏移开始阅读:::
“:::字节=>有多少要读取的字节:::
“::::::
“:::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::
功能则GetBytes(flnm,偏移,字节)在
昏暗的objFSO
昏暗的objFTemp
昏暗的objTextStream
昏暗的lngSize
错误恢复下
设置objFSO = CREATEOBJECT(“Scripting.FileSystemObject的”)
“ 第一,我们得到的文件大小
设置objFTemp = objFSO.GetFile(flnm)
lngSize = objFTemp.Size
集objFTemp =没有
fsoForReading = 1
设置objTextStream = objFSO.OpenTextFile (flnm,fsoForReading)
如果偏移> 0,则
strBuff = objTextStream.Read (偏移- 1)
字节= -1,那么“获取所有!
GetBytes会objTextStream.Read(lngSize)“的ReadAll
其他
则GetBytes = objTextStream.Read (字节)
结束,如果
objTextStream.Close
集objTextStream =没有
设置objFSO =没有
结束功能
“:::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::
“::::::
“:::功能转换成两个字节的数值(长):::
“:::(little-endian和big-endian的):::
“::::::
“::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::“
功能lngConvert(strTemp)
lngConvert的CLNG(ASC(左(strTemp 1))+((ASC(右(strTemp 1))* 256)))
端功能
功能lngConvert2( strTemp)
lngConvert2 CLNG(ASC(右(strTemp 1))+((ASC(左(strTemp 1))* 256)))
端功能
“:::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::
“::::::
“:::这个函数做的实际工作。它将尝试:::
'' :::读取任何文件,无论扩展名,并且将:::
'' :::识别如果它是一个图形图像。:::
“::::::
“:::合格::::
“::: flnm =>文件规范的文件的阅读:::
“:::宽度=>宽度的图像:: :
“:::高度=>图像高度:::
“:::深入=>颜色深度(颜色数):::
“::: strImageType =>类型的图像(如GIF,BMP等):::
'' ::::::
'' ::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::
功能gfxSpex(flnm,宽度,高度,深度,strImageType)
昏暗的strPNG
暗淡strGIF
暗淡strBMP
strType
strType =“”
strImageType =“(未知)”
gfxSpex = FALSE
strPNG = CHR(137)CHR(80)CHR(78)
strGIF =“GIF”
strBMP = CHR(66)CHR(77 )
strType = GetBytes会(flnm,0,3)
= strGIF那么“GIF
strImageType =“GIF”
宽= lngConvert(GetBytes会(flnm,7,2))
高度= lngConvert(GetBytes会(flnm,9,2) )
深度= 2 ^((ASC(GetBytes会(flnm,11,1))和7)+ 1)
gfxSpex = TRUE
ELSEIF左(strType 2)= strBMP那么“和BMP
strImageType =“BMP”
宽度= lngConvert( GetBytes会(flnm,19,2))
高度)= lngConvert(GetBytes会(flnm,23,2)
= 2 ^(ASC(GetBytes会(flnm,29,1)))
gfxSpex =
ELSEIF strType = strPNG,然后“ PNG
strImageType =“PNG”
(flnm,19,2)= lngConvert2(GetBytes会)宽度
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(flnm,0,-1)“的所有字节文件
lngSize = LEN(strBuff)
flgFound = 0
strTarget = CHR(255)&CHR(216)&CHR(255)
flgFound = INSTR(strBuff,strTarget)
= 0,则
退出函数
结束
strImageType =“JPG”
lngPos的flgFound + 2
ExitLoop = FALSE
而ExitLoop = FALSE lngPos <lngSize
递增(中“(strBuff,lngPos,1))= 255,lngPos lngSize
lngPos = lngPos + 1
循环
递增(中“(strBuff,lngPos,1))<192或ASC(中(strBuff,lngPos ,1))> 195,然后
lngMarkerSize lngConvert2(MID(strBuff,lngPos + 1,2))
lngPos = lngPos + lngMarkerSize + 1
其他
ExitLoop =真正的
结束,如果
环路
“
ExitLoop = FALSE,则
宽度= -1
身高= - 1
深度= -1
别人的
高度= lngConvert2(中期)(strBuff,lngPos + 4,2)
= lngConvert2(中)(strBuff,lngPos + 6,2)
= 2 ^(ASC(MID(strBuff,lngPos + 8 ,1))* 8)
gfxSpex =真正的
结束,如果
结束如果
结束功能
“:::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::
“:::测试工具:::
“ :::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::
“测试,我们将只显示所有文件在C的根目录下一个扩展名为。GIF:
设置objFSO = CREATEOBJECT(“ Scripting.FileSystemObject的“)
objF = objFSO.GetFolder(“C:\”)
设置objFC = objF.Files
的Response.Write“<table border=""0"" cellpadding=""5"">”
对于每个F1 objFC
如果INSTR(UCASE(f1.Name)的“GIF”)
的Response.Write“文章快照”和f1.name&“</ TD> <TD>”f1.DateCreated&“</ TD> <TD>“和f1.Size&”</ TD> <TD>“
如果gfxSpex(f1.Path,W,H,C,strType)= true,则
回复于W&“”&H&“ “&C”颜色“
其他
的Response.Write“
结束如果
下一步
的Response.Write“</ TABLE>”
集objFC =没有
设置objF =无
objFSO =什么
%>