-
คลาส imgwhinfo '' 获取图片宽度和高度的类, 支持 jpg, gif, png, bmp
หม
คลาสย่อย class_initialize
SET ASO = Server.CreateObject ("ADODB.STREAM"))
aso.mode = 3
aso.type = 1
aso.open
สิ้นสุดย่อย
คลาสย่อย class_terminate
err.lear
ตั้งค่า aso = ไม่มีอะไร
สิ้นสุดย่อย
ฟังก์ชั่นส่วนตัว bin2str (bin)
dim i, str
สำหรับ i = 1 ถึง Lenb (bin)
clow = midb (bin, i, 1)
ถ้า ASCB (Clow) <128 แล้ว
str = str & chr (ascb (clow))
อื่น
i = i+1
ถ้าฉัน <= lenb (bin) จากนั้น str = str & chr (ascw (midb (bin, i, 1) & clow))
สิ้นสุดถ้า
ต่อไป
bin2str = str
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นส่วนตัว num2str (num, ฐาน, เลนส์)
หรี่
ret = ""
ในขณะที่ (num> = base)
ret = (ฐาน mod num) & ret
num = (num - num mod base)/ฐาน
ใช้
num2str = ขวา (สตริง (เลนส์, "0") & num & ret, เลนส์)
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นส่วนตัว str2num (str, base)
สลัว ret, i
ret = 0
สำหรับ i = 1 ถึง len (str)
ret = ret *base + cint (mid (str, i, 1))
ต่อไป
str2num = ret
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นส่วนตัว binval (bin)
สลัว ret, i
ret = 0
สำหรับ i = lenb (bin) ถึง 1 ขั้นตอน -1
ret = ret *256 + ascb (midb (bin, i, 1))
ต่อไป
binval = ret
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นส่วนตัว binval2 (bin)
สลัว ret, i
ret = 0
สำหรับ i = 1 ถึง Lenb (bin)
ret = ret *256 + ascb (midb (bin, i, 1))
ต่อไป
binval2 = ret
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นส่วนตัว getImagesize (filespec)
สลัว bflag
สลัว ret (3)
aso.loadfromfile (FileSpec)
bflag = aso.read (3)
เลือกกรณี hex (binval (bflag))
กรณี "4E5089":
aso.read (15)
ret (0) = "png"
ret (1) = binval2 (aso.read (2))
aso.read (2)
ret (2) = binval2 (aso.read (2))
กรณี "464947"::
aso.read (3)
ret (0) = "gif"
ret (1) = binval (aso.read (2))
ret (2) = binval (aso.read (2))
กรณี "535746":
aso.read (5)
bindata = aso.read (1)
sconv = num2str (ascb (bindata), 2, 8)
nbits = str2num (ซ้าย (sconv, 5), 2)
sconv = mid (sconv, 6)
ในขณะที่ (len (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 จากนั้นออกจากทำ aso.read (binval2 (aso.read (2))-2)
ทำ: p1 = binval (aso.read (1)): ลูปในขณะที่ p1 <255 และไม่ใช่ aso.eos
วนวนในขณะที่จริง
aso.read (3)
ret (0) = "jpg"
ret (2) = binval2 (aso.read (2))
ret (1) = binval2 (aso.read (2))
กรณีอื่น:
ถ้าซ้าย (bin2str (bflag), 2) = "bm" แล้ว
aso.read (15)
ret (0) = "BMP"
ret (1) = binval (aso.read (4))
ret (2) = binval (aso.read (4))
อื่น
ret (0) = ""
สิ้นสุดถ้า
สิ้นสุดเลือก
ret (3) = "width =" "" & ret (1) & "" "" & ret (2) & "" "
getImagesize = ret
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ IMGW (IMGPath)
Dim FSO, imgfile, fileext, arr
ตั้งค่า fso = server.createObject ("Scripting.filesystemObject")