<%
Kelas ImgWHInfo '获取图片宽度和高度的类,支持JPG,GIF,PNG,BMP
Redupkan ASO
Sub Kelas Pribadi_Inisialisasi
Setel ASO=Server.CreateObject("ADODB.Stream")
ASO.Mode=3
ASO.Jenis=1
ASO.Buka
Akhiri Sub
Sub Kelas Pribadi_Terminate
Err. Jelas
Tetapkan ASO=Tidak Ada
Akhiri Sub
Fungsi Pribadi Bin2Str(Bin)
Redupkan aku, Str
Untuk I=1 Ke LenB(Bin)
clow=MidB(Bin,I,1)
Jika ASCB(badut)<128 Lalu
Str = Str & Chr(ASCB(badut))
Kalau tidak
saya=saya+1
Jika saya <= LenB(Bin) Maka Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
Akhiri Jika
Berikutnya
Bin2Str = Str
Fungsi Akhir
Fungsi Pribadi Num2Str (Nomor, Basis, Lensa)
Redupkan Ret
Ret = ""
Sementara(Bilangan>=Dasar)
Ret = (Jumlah Mod Basis) & Ret
Jumlah = (Jumlah - Jumlah Basis Mod)/Basis
Pergi ke
Num2Str = Kanan(String(Lensa,"0") & Jumlah & Ret,Lensa)
Fungsi Akhir
Fungsi Pribadi Str2Num(Str,Base)
Redupkan Ret,I
Kembali = 0
Untuk I=1 Ke Len(Str)
Ret = Ret *base + Cint(Mid(Str,I,1))
Berikutnya
Str2Num=Ret
Fungsi Akhir
Fungsi Pribadi BinVal(Bin)
Redupkan Ret,I
Kembali = 0
Untuk I = LenB(Bin) Ke 1 Langkah -1
Ret = Ret *256 + AscB(MidB(Bin,I,1))
Berikutnya
BinVal=Ret
Fungsi Akhir
Fungsi Pribadi BinVal2(Bin)
Redupkan Ret,I
Kembali = 0
Untuk I = 1 Ke LenB(Bin)
Ret = Ret *256 + AscB(MidB(Bin,I,1))
Berikutnya
BinVal2=Purn
Fungsi Akhir
Fungsi Pribadi GetImageSize (filespec)
Redupkan bendera
Redupkan Ret(3)
ASO.LoadFromFile(spesifikasi file)
bBendera=ASO.Baca(3)
Pilih Kasus Hex(binVal(bFlag))
Kasus "4E5089":
ASO.Baca(15)
ret(0)="PNG"
ret(1)=BinVal2(ASO.Baca(2))
ASO.Baca(2)
ret(2)=BinVal2(ASO.Baca(2))
Kasus "464947":
ASO.baca(3)
ret(0)="gif"
ret(1)=BinVal(ASO.Baca(2))
ret(2)=BinVal(ASO.Baca(2))
Kasus "535746":
ASO.baca(5)
binData=ASO.Baca(1)
sConv=Nomor2Str(ascb(binData),2 ,8)
nBits=Str2Num(kiri(sConv,5),2)
sKonv=pertengahan(sKonv,6)
Sementara(len(sConv)<nBits*4)
binData=ASO.Baca(1)
sConv=sConv&Num2Str(AscB(binData),2 ,8)
Pergi ke
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)
Kasus "FFD8FF":
Melakukan
Lakukan: p1=binVal(ASO.Read(1)): Loop While p1=255 Dan Bukan ASO.EOS
Jika p1>191 Dan p1<196 Lalu Keluar Lakukan Yang Lain ASO.read(binval2(ASO.Read(2))-2)
Lakukan:p1=binVal(ASO.Read(1)):Loop While p1<255 Dan Bukan ASO.EOS
Ulangi Saat Benar
ASO.Baca(3)
ret(0)="JPG"
ret(2)=binval2(ASO.Baca(2))
ret(1)=binval2(ASO.Baca(2))
Kasus Lain:
Jika kiri(Bin2Str(bFlag),2)="BM" Lalu
ASO.Baca(15)
ret(0)="BMP"
ret(1)=binval(ASO.Baca(4))
ret(2)=binval(ASO.Baca(4))
Kalau tidak
kembali(0)=""
Akhiri Jika
Pilihan Akhir
ret(3)="lebar=""" & ret(1) &""" tinggi=""" & ret(2) &""""
getimagesize=ret
Fungsi Akhir
Fungsi Publik imgW(IMGPath)
Redupkan FSO,IMGFile,FileExt,Arr
Setel FSO = Server.CreateObject("Scripting.FileSystemObject")
Jika (FSO.FileExists(IMGPath)) Lalu
Setel IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
Pilih Kasus FileExt
Huruf "gif","bmp","jpg","png":
Arr=GetImageSize(IMGFile.Path)
imgW = Arr(1)
Pilihan Akhir
Setel IMGFile=Tidak Ada
Kalau tidak
gambarW = 0
Akhiri Jika
Tetapkan FSO=Tidak Ada
Fungsi Akhir
Fungsi Publik imgH(IMGPath)
Redupkan FSO,IMGFile,FileExt,Arr
Setel FSO = server.CreateObject("Scripting.FileSystemObject")
Jika (FSO.FileExists(IMGPath)) Lalu
Setel IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
Pilih Kasus FileExt
Huruf "gif","bmp","jpg","png":
Arr=getImageSize(IMGFile.Path)
imgH = Arr(2)
Pilihan Akhir
Setel IMGFile=Tidak Ada
Kalau tidak
gambarH = 0
Akhiri Jika
Tetapkan FSO=Tidak Ada
Fungsi Akhir
Kelas Akhir
IMGPath="Test.jpg"
Setel PP = ImgWHInfo Baru
W = PP.imgW(Server.Mappath(IMGPath))
H = PP.imgH(Server.Mappath(IMGPath))
Setel pp = Tidak ada
Response.Write("<img src='"&IMGPath&"' border=0><br>宽:"&W&";高:"&H)
%>