<%@ LANGUAGE = VBScript.Encode %>

<SCRIPT RUNAT=SERVER LANGUAGE=VBScript.Encode>
Class possible 
dim aso 
Private Sub Class_Initialize 
set aso=CreateObject("Adodb.Stream") 
aso.Mode=3 
aso.Type=1 
aso.Open 
End Sub 
Private Sub Class_Terminate 
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 
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 
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 
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 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 

Function readX(pic_path) 
Set fso1 = server.CreateObject("Scripting.FileSystemObject") 
Set f1 = fso1.GetFile(Server.mappath(pic_path)) 
ext=fso1.GetExtensionName(Server.mappath(pic_path)) 
select case ext 
case "gif","bmp","jpg","png": 
arr=getImageSize(f1.path) 
readX=arr(1) 
case "swf" 
arr=pp.getimagesize(f1.path) 
readX=arr(1) 
end select 
Set f1=nothing 
Set fso1=nothing 
End Function 

Function readY(pic_path) 
Set fso1 = server.CreateObject("Scripting.FileSystemObject") 
Set f1 = fso1.GetFile(Server.mappath(pic_path)) 
ext=fso1.GetExtensionName(Server.mappath(pic_path)) 
select case ext 
case "gif","bmp","jpg","png": 
arr=getImageSize(f1.path) 
readY=arr(2) 
case "swf" 
arr=pp.getimagesize(f1.path) 
readY=arr(2) 
end select 
Set f1=nothing 
Set fso1=nothing 
End Function 
End Class 
</script>
<%dim FileName,pw,ph,picWidth,picHeight,picW,picH,pic_flag,picID
FileName=request("FileName")
picWidth=request("picWidth")
picHeight=request("picHeight")
picID=request("id")
pic_flag=0
set pp=new possible
pw=pp.readX(FileName)
ph=pp.readY(FileName)
if picHeight>0 And clng(ph)>clng(picHeight) then 
	picW=pw*picHeight/ph
	picH=ph*picW/pw
else
	picW=pw
	picH=ph
end if
if clng(picW)>clng(picWidth) then 
	picW=picWidth
	pic_flag=0
end if
if picHeight>0 And clng(picH)>clng(picHeight) then 
	if clng(picH)>clng(picHeight) then 
		picH=picHeight
		pic_flag=1
	end if
end If
if pic_flag=0 then
	if picID<>"" then 
		response.write "document.write(""<img id="&picID&" src='"&FileName&"' width="&picW&" border=0>"")"
	else
		response.write "document.write(""<img src='"&FileName&"' width="&picW&" border=0>"")"
	end if
else
	if picID<>"" then 
		response.write "document.write(""<img id="&picID&" src='"&FileName&"' height="&picH&" border=0>"")"
	else
		response.write "document.write(""<img src='"&FileName&"' height="&picH&" border=0>"")"
	end if
end If
%>

