<%
Class ImgWHInfo ''صور الصور الفوتوغرافية والصور الفوتوغرافية، بتنسيق JPG، GIF، PNG، BMP
خافت ASO
فئة فرعية خاصة_تهيئة
تعيين ASO=Server.CreateObject(ADODB.Stream)
ASO.الوضع=3
ASO.النوع=1
ASO.Open
نهاية الفرعية
فئة فرعية خاصة_إنهاء
خطأ.واضح
تعيين 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) ورقم وإرجاع، عدسة)
وظيفة النهاية
الدالة الخاصة 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)
ret(0)=PNG
ret(1)=BinVal2(ASO.Read(2))
أسو.قراءة(2)
ret(2)=BinVal2(ASO.Read(2))
الحالة 464947:
أسو.قراءة(3)
ret(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)
ويند
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)
حالة 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)
ret(0)=JPG
ret(2)=binval2(ASO.Read(2))
ret(1)=binval2(ASO.Read(2))
حالة أخرى:
إذا بقي (Bin2Str(bFlag)،2)=BM ثم
أسو.إقرأ(15)
ret(0)=BMP
ret(1)=binval(ASO.Read(4))
ret(2)=binval(ASO.Read(4))
آخر
إعادة (0) =
نهاية إذا
إنهاء التحديد
إعادة (3) = العرض = & إعادة (1) & الارتفاع = & إعادة (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))
تعيين ص = لا شيء
%>
<%
خافت W،PXHeight
خافت ص '//نسبة
إذا كان W = 0 أو W = إذن
عرض بكسل = 0
ارتفاع بكسل = 0
آخر
Pp=FormatNumber(W/H,2) '//رقم التنسيق
نهاية إذا
إذا W> = H ثم
إذا W> = 300 ثم
عرض بكسل = 300
PXHeight=FormatNumber(300/Pp,0)
آخر
عرض بكسل = العرض
ارتفاع بكسل = ح
نهاية إذا
آخر
إذا كان PHeight> = 260 ثم
ارتفاع البكسل = 260
PXWidth=رقم التنسيق(260*ص,0)
آخر
عرض بكسل = العرض
ارتفاع بكسل = ح
نهاية إذا
نهاية إذا
الاستجابة. الكتابة (PXWidth)
%>
<img src=Test.jpg border=0 width=<%=PXWidth%>
الارتفاع=<%=PXHeight%>>