[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。
发表人 主题:Detect Graphic Type/Dimensions
嘎嘎,是我
身份:admin
发帖:1438
登陆次数:3287
1F 发表于 2007/4/3 11:39:29
http://www.learnasp.com/freebook/asp/graphicdetect.aspx
==================================
Detect Graphic Type/Dimensions by Daniel Gorroño
Daniel Gorroño Santurtzi 
danielgo@sarenet.es
Bizkaia - Euskal Herria
This ingenious piece of code demonstrates how to read a file using the file system object and extract bytes that contain the height and width.
   filename=
/learn/test/graphicdetect.asp
 
<
Test Script Below
>[/b]


<!--#include virtual="/learn/test/lib_graphicdetect.asp"-->
<html><head>
<TITLE>dbtable.asp</TITLE>
</head>
<body bgcolor="#FFFFFF">
<%
    graphic="images/learnaspiconmain.gif"
    HW = ReadImg(graphic)
    Response.Write graphic & " Dimensions: " & HW(0) & "x" & HW(1) & "<br>"
    response.write "<img src=""/" & graphic & """" 
    response.write height=""" & HW(0) & """
    response.write width=""" & HW(0) & "">"
%>
</body></html>




Test Script Below
>[/b]

<%
Dim HW

Function AscAt(s, n)
        AscAt = Asc(Mid(s, n, 1))
End Function

Function HexAt(s, n)
        HexAt = Hex(AscAt(s, n))
End Function


Function isJPG(fichero)
        If inStr(uCase(fichero), ".JPG") <> 0 Then
                isJPG = true
        Else
                isJPG = false
        End If
End Function


Function isPNG(fichero)
        If inStr(uCase(fichero), ".PNG") <> 0 Then
                isPNG = true
        Else
                isPNG = false
        End If
End Function


Function isGIF(fichero)
        If inStr(uCase(fichero), ".GIF") <> 0 Then
                isGIF = true
        Else
                isGIF = false
        End If
End Function


Function isBMP(fichero)
        If inStr(uCase(fichero), ".BMP") <> 0 Then
                isBMP = true
        Else
                isBMP = false
        End If
End Function


Function isWMF(fichero)
        If inStr(uCase(fichero), ".WMF") <> 0 Then
                isWMF = true
        Else
                isWMF = false
        End If
End Function


Function isWebImg(f)
        If isGIF(f) Or isJPG(f) Or isPNG(f) Or isBMP(f) Or isWMF(f) Then
                isWebImg = true
        Else
                isWebImg = true
        End If
End Function


Function ReadImg(fichero)
        If isGIF(fichero) Then
                ReadImg = ReadGIF(fichero)
        Else
                If isJPG(fichero) Then
                        ReadImg = ReadJPG(fichero)
                Else
                        If isPNG(fichero) Then
                        ReadImg = ReadPNG(fichero)
                        Else
                                If isBMP(fichero) Then
                                        ReadImg = ReadPNG(fichero)
                                Else
                                        If isWMF(fichero) Then
                                                ReadImg = ReadWMF(fichero)
                                        Else
                                                ReadImg = Array(0,0)
                                        End If
                                End If
                        End If
                End If
        End If
End Function


Function ReadJPG(fichero)
  Dim fso, ts, s, HW, nbytes
        HW = Array("","")
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
        s = Right(ts.Read(167), 4)
        HW(0) = HexToDec(HexAt(s,3) & HexAt(s,4))
        HW(1) = HexToDec(HexAt(s,1) & HexAt(s,2))
        ts.Close
  ReadJPG = HW
End Function


Function ReadPNG(fichero)
  Dim fso, ts, s, HW, nbytes
        HW = Array("","")
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
        s = Right(ts.Read(24), 8)
        HW(0) = HexToDec(HexAt(s,3) & HexAt(s,4))
        HW(1) = HexToDec(HexAt(s,7) & HexAt(s,8))
        ts.Close
  ReadPNG = HW
End Function


Function ReadGIF(fichero)
  Dim fso, ts, s, HW, nbytes
        HW = Array("","")
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
        s = Right(ts.Read(10), 4)
        HW(0) = HexToDec(HexAt(s,2) & HexAt(s,1))
        HW(1) = HexToDec(HexAt(s,4) & HexAt(s,3))
        ts.Close
  ReadGIF = HW
End Function


Function ReadWMF(fichero)
  Dim fso, ts, s, HW, nbytes
        HW = Array("","")
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
        s = Right(ts.Read(14), 4)
        HW(0) = HexToDec(HexAt(s,2) & HexAt(s,1))
        HW(1) = HexToDec(HexAt(s,4) & HexAt(s,3))
        ts.Close
  ReadWMF = HW
End Function


Function ReadBMP(fichero)
  Dim fso, ts, s, HW, nbytes
        HW = Array("","")
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
        s = Right(ts.Read(24), 8)
        HW(0) = HexToDec(HexAt(s,4) & HexAt(s,3))
        HW(1) = HexToDec(HexAt(s,8) & HexAt(s,7))
        ts.Close
  ReadBMP = HW
End Function


Function isDigit(c)
        If inStr("0123456789", c) <> 0 Then
                isDigit = true
        Else
                isDigit = false
        End If
End Function


Function isHex(c)
        If inStr("0123456789ABCDEFabcdef", c) <> 0 Then
                isHex = true
        Else
                ishex = false
        End If
End Function


Function HexToDec(cadhex)
        Dim n, i, ch, decimal
        decimal = 0
        n = Len(cadhex)
        For i=1 To n
                ch = Mid(cadhex, i, 1)
                If isHex(ch) Then
                        decimal = decimal * 16
                        If isDigit(c) Then
                                decimal = decimal + ch
                        Else
                                decimal = decimal + Asc(uCase(ch)) - Asc("A")
                        End If
                Else
                        HexToDec = -1
                End If
        Next
        HexToDec = decimal
End Function
%>



 
标题:
消息图标:                                             
                                            
正文:



* UBB 代码开启

 
CopyRight © 心缘地方 2005-2999. All Rights Reserved