<%
Class ImgWHInfo 'صور الصور الفوتوغرافية والصور الفوتوغرافية، بتنسيق JPG، GIF، PNG، BMP
خافت ASO
فئة فرعية خاصة_تهيئة
تعيين ASO=Server.CreateObject("ADODB.Stream")
ASO.الوضع=3
ASO.النوع=1
ASO.فتح
نهاية الفرعية
فئة فرعية خاصة_إنهاء
خطأ.واضح
تعيين ASO = لا شيء
نهاية الفرعية
وظيفة خاصة Bin2Str(Bin)
خافت أنا، شارع
لأني=1 إلى LenB(Bin)
clow = MidB (بن، أنا، 1)
إذا كان ASCB(clow)<128 إذن
Str = Str & Chr(ASCB(clow))
آخر
أنا=أنا+1
إذا كنت <= LenB(Bin) ثم Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
نهاية إذا
التالي
Bin2Str = Str
وظيفة النهاية
الوظيفة الخاصة Num2Str(Num,Base,Lens)
خافت ريت
إعادة = ""
بينما (رقم> = القاعدة)
Ret = (Num Mod Base) & Ret
Num = (Num - Num Mod Base)/Base
ويند
Num2Str = اليمين(سلسلة(عدسة،"0") & Num & Ret،عدسة)
وظيفة النهاية
الدالة الخاصة Str2Num(Str,Base)
ديم ريت، آي
ريت = 0
لأني = 1 إلى لين (شارع)
Ret = Ret *base + Cint(Mid(Str,I,1))
التالي
Str2Num=متقاعد
وظيفة النهاية
وظيفة خاصة BinVal(Bin)
ديم ريت، آي
ريت = 0
لأني = LenB(Bin) إلى خطوة واحدة -1
Ret = Ret *256 + AscB(MidB(Bin,I,1))
التالي
BinVal=متقاعد
وظيفة النهاية
وظيفة خاصة BinVal2(Bin)
ديم ريت، آي
ريت = 0
لأني = 1 إلى LenB(Bin)
Ret = Ret *256 + AscB(MidB(Bin,I,1))
التالي
BinVal2=متقاعد
وظيفة النهاية
الوظيفة الخاصة GetImageSize(filespec)
خافت بفلاج
خافت ريت(3)
ASO.LoadFromFile(filespec)
bFlag=ASO.Read(3)
حدد الحالة السداسية (binVal(bFlag))
الحالة "4E5089":
أسو.إقرأ(15)
إعادة (0) = "بابوا نيو غينيا"
ret(1)=BinVal2(ASO.Read(2))
أسو.قراءة(2)
ret(2)=BinVal2(ASO.Read(2))
الحالة "464947":
أسو.قراءة(3)
إعادة (0) = "gif"
ret(1)=BinVal(ASO.Read(2))
ret(2)=BinVal(ASO.Read(2))
الحالة "535746":
أسو.قراءة(5)
binData=ASO.Read(1)
sConv=Num2Str(ascb(binData),2 ,8)
nBits=Str2Num(left(sConv,5),2)
sConv = منتصف (sConv، 6)
بينما (لين (sConv) <nBits * 4)
binData=ASO.Read(1)
sConv=sConv&Num2Str(AscB(binData),2 ,8)
ويند
إعادة (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)
الحالة "FFD8FF":
يفعل
افعل: p1=binVal(ASO.Read(1)): قم بالتكرار أثناء p1=255 وليس ASO.EOS
إذا كانت p1>191 وp1<196، فاخرج من Do Else ASO.read(binval2(ASO.Read(2))-2)
افعل:p1=binVal(ASO.Read(1)):التكرار أثناء p1<255 وليس ASO.EOS
حلقة بينما صحيح
أسو.ريد(3)
إعادة (0) = "JPG"
ret(2)=binval2(ASO.Read(2))
ret(1)=binval2(ASO.Read(2))
حالة أخرى:
إذا بقي (Bin2Str(bFlag)،2)="BM" ثم
أسو.إقرأ(15)
إعادة (0) = "BMP"
ret(1)=binval(ASO.Read(4))
ret(2)=binval(ASO.Read(4))
آخر
يتراجع (0) = ""
نهاية إذا
إنهاء التحديد
ret(3) = "العرض ="" & ret (1) &""" الارتفاع = """ & ret (2) &""""
getimagesize=ret
وظيفة النهاية
الوظيفة العامة imgW(IMGPath)
خافت FSO، IMGFile، FileExt، Arr
تعيين FSO = Server.CreateObject("Scripting.FileSystemObject")
إذا (FSO.FileExists(IMGPath)) ثم
تعيين IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
حدد امتداد ملف الحالة
الحالة "gif"، و"bmp"، و"jpg"، و"png":
Arr=GetImageSize(IMGFile.Path)
إيمجو = آر(1)
إنهاء التحديد
اضبط IMGFile = لا شيء
آخر
إيمجو = 0
نهاية إذا
تعيين FSO = لا شيء
وظيفة النهاية
الوظيفة العامة imgH(IMGPath)
خافت FSO، IMGFile، FileExt، Arr
تعيين FSO = server.CreateObject("Scripting.FileSystemObject")
إذا (FSO.FileExists(IMGPath)) ثم
تعيين IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
حدد امتداد ملف الحالة
الحالة "gif"، و"bmp"، و"jpg"، و"png":
Arr=getImageSize(IMGFile.Path)
imgH = آر(2)
إنهاء التحديد
اضبط IMGFile = لا شيء
آخر
إيمج = 0
نهاية إذا
تعيين FSO = لا شيء
وظيفة النهاية
نهاية الفئة
IMGPath = "Test.jpg"
تعيين PP = ImgWHInfo الجديد
W = PP.imgW(Server.Mappath(IMGPath))
H = PP.imgH(Server.Mappath(IMGPath))
تعيين ص = لا شيء
Response.Write("<img src='"&IMGPath&"' border=0><br>النقطة:"&W&";高:"&H)
%>