日期:2008-11-15 浏览次数:21025 次
<%
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::: 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)"