国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

獲取圖片寬度和高度的類,支持JPG,GIF,PNG,B

2024-05-04 11:07:58
字體:
來源:轉載
供稿:網友
<% 
Class ImgWHInfo ''獲取圖片寬度和高度的類,支持JPG,GIF,PNG,BMP 
Dim ASO 
Private Sub Class_Initialize 
Set ASO=Server.CreateObject("ADODB.Stream") 
ASO.Mode=3 
ASO.Type=1 
ASO.Open 
End Sub 
Private Sub Class_Terminate 
Err.Clear 
Set ASO=Nothing 
End Sub 

Private Function Bin2Str(Bin) 
Dim I, Str 
For I=1 To LenB(Bin) 
clow=MidB(Bin,I,1) 
If ASCB(clow)<128 Then 
Str = Str & Chr(ASCB(clow)) 
Else 
I=I+1 
If I <= LenB(Bin) Then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow)) 
End If 
Next 
Bin2Str = Str 
End Function 

Private Function Num2Str(Num,Base,Lens) 
Dim Ret 
Ret = "" 
While(Num>=Base) 
Ret = (Num Mod Base) & Ret 
Num = (Num - Num Mod Base)/Base 
Wend 
Num2Str = Right(String(Lens,"0") & Num & Ret,Lens) 
End Function 

Private Function Str2Num(Str,Base) 
Dim Ret,I 
Ret = 0 
For I=1 To Len(Str) 
Ret = Ret *base + Cint(Mid(Str,I,1)) 
Next 
Str2Num=Ret 
End Function 

Private Function BinVal(Bin) 
Dim Ret,I 
Ret = 0 
For I = LenB(Bin) To 1 Step -1 
Ret = Ret *256 + AscB(MidB(Bin,I,1)) 
Next 
BinVal=Ret 
End Function 

Private Function BinVal2(Bin) 
Dim Ret,I 
Ret = 0 
For I = 1 To LenB(Bin) 
Ret = Ret *256 + AscB(MidB(Bin,I,1)) 
Next 
BinVal2=Ret 
End Function 

Private Function GetImageSize(filespec) 
Dim bFlag 
Dim Ret(3) 
ASO.LoadFromFile(filespec) 
bFlag=ASO.Read(3) 
Select Case Hex(binVal(bFlag)) 
Case "4E5089": 
ASO.Read(15) 
ret(0)="PNG" 
ret(1)=BinVal2(ASO.Read(2)) 
ASO.Read(2) 
ret(2)=BinVal2(ASO.Read(2)) 
Case "464947": 
ASO.read(3) 
ret(0)="gif" 
ret(1)=BinVal(ASO.Read(2)) 
ret(2)=BinVal(ASO.Read(2)) 
Case "535746": 
ASO.read(5) 
binData=ASO.Read(1) 
sConv=Num2Str(ascb(binData),2 ,8) 
nBits=Str2Num(left(sConv,5),2) 
sConv=mid(sConv,6) 
While(len(sConv)<nBits*4) 
binData=ASO.Read(1) 
sConv=sConv&Num2Str(AscB(binData),2 ,8) 
Wend 
ret(0)="SWF" 
ret(1)=Int(Abs(Str2Num(Mid(sConv,1*nBits+1,nBits),2)-Str2Num(Mid(sConv,0*nBits+1,nBits),2))/20) 
ret(2)=Int(Abs(Str2Num(Mid(sConv,3*nBits+1,nBits),2)-Str2Num(Mid(sConv,2*nBits+1,nBits),2))/20) 
Case "FFD8FF": 
Do 
Do: p1=binVal(ASO.Read(1)): Loop While p1=255 And Not ASO.EOS 
If p1>191 And p1<196 Then Exit Do Else ASO.read(binval2(ASO.Read(2))-2) 
Do:p1=binVal(ASO.Read(1)):Loop While p1<255 And Not ASO.EOS 
Loop While True 
ASO.Read(3) 
ret(0)="JPG" 
ret(2)=binval2(ASO.Read(2)) 
ret(1)=binval2(ASO.Read(2)) 
Case Else: 
If left(Bin2Str(bFlag),2)="BM" Then 
ASO.Read(15) 
ret(0)="BMP" 
ret(1)=binval(ASO.Read(4)) 
ret(2)=binval(ASO.Read(4)) 
Else 
ret(0)="" 
End If 
End Select 
ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &"""" 
getimagesize=ret 
End Function 

Public Function imgW(IMGPath) 
Dim FSO,IMGFile,FileExt,Arr 
Set FSO = Server.CreateObject("Scripting.FileSystemObject") 
If (FSO.FileExists(IMGPath)) Then 
Set IMGFile = FSO.GetFile(IMGPath) 
FileExt=FSO.GetExtensionName(IMGPath) 
Select Case FileExt 
Case "gif","bmp","jpg","png": 
Arr=GetImageSize(IMGFile.Path) 
imgW = Arr(1) 
End Select 
Set IMGFile=Nothing 
Else 
imgW = 0 
End If 
Set FSO=Nothing 
End Function 

Public Function imgH(IMGPath) 
Dim FSO,IMGFile,FileExt,Arr 
Set FSO = server.CreateObject("Scripting.FileSystemObject") 
If (FSO.FileExists(IMGPath)) Then 
Set IMGFile = FSO.GetFile(IMGPath) 
FileExt=FSO.GetExtensionName(IMGPath) 
Select Case FileExt 
Case "gif","bmp","jpg","png": 
Arr=getImageSize(IMGFile.Path) 
imgH = Arr(2) 
End Select 
Set IMGFile=Nothing 
Else 
imgH = 0 
End If 
Set FSO=Nothing 
End Function 
End Class 
%>
<%
IMGPath="Test.jpg" 

Set PP = New ImgWHInfo 
W = PP.imgW(Server.Mappath(IMGPath)) 
H = PP.imgH(Server.Mappath(IMGPath)) 
Set pp = Nothing 
%>
<%
Dim W,PXHeight
Dim Pp '//Proportion
If W=0 or W="" Then
PXWidth=0
PXHeight=0
Else
Pp=FormatNumber(W/H,2) '//長寬比
End If
If W>=H Then
If W>=300 Then
PXWidth=300
PXHeight=FormatNumber(300/Pp,0)
Else
PXWidth=W
PXHeight=H
End If
Else
If PHeight>=260 Then
PXHeight=260
PXWidth=FormatNumber(260*Pp,0)
Else
PXWidth=W
PXHeight=H
End If
End If
response.Write(PXWidth)
%>
<img src="Test.jpg" border="0" width=<%=PXWidth%> 
height=<%=PXHeight%>> 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淄博市| 阳山县| 玉龙| 巢湖市| 保康县| 普安县| 罗田县| 曲周县| 常熟市| 巩留县| 讷河市| 安义县| 浦东新区| 宜阳县| 黄梅县| 伊吾县| 永清县| 丰台区| 郑州市| 宜都市| 正镶白旗| 吉木萨尔县| 肥西县| 鄂伦春自治旗| 延津县| 桃源县| 高唐县| 筠连县| 中方县| 道孚县| 湄潭县| 榕江县| 县级市| 苍溪县| 高要市| 奎屯市| 岳阳县| 泉州市| 修武县| 黑山县| 双城市|