<%
클래스 imgwhinfo ''获取图片宽度和高度的类 获取图片宽度和高度的类, 支持 jpg, gif, png, bmp
희미한 ASO
private sub class_initialize
set aso = server.createobject ( "adodb.stream")
aso.mode = 3
aso.type = 1
ASO. OPEN
종료 서브
개인 sub class_terminate
err.clear
ASO = 아무것도 설정하지 않습니다
종료 서브
개인 기능 Bin2str (빈)
Dim I, Str
i = 1에서 lenb (bin)의 경우
clow = midb (bin, i, 1)
ASCB (Clow) <128 인 경우
str = str & chr (ASCB (clow))
또 다른
i = i+1
i <= lenb (bin)이면 str = str & chr (ascw (midb (bin, i, 1) & clow))
끝 If
다음
bin2str = str
엔드 기능
개인 기능 Num2str (Num, Base, Lens)
딤토
ret = ""
while (num> = base)
ret = (num mod base) & ret
num = (num -num mod base)/base
향하게 하다
num2str = right (문자열 (렌즈, "0") 및 Num & ret, 렌즈)
엔드 기능
개인 기능 str2num (str, base)
Dim Ret, i
ret = 0
i = 1 to len (str)의 경우
ret = ret *base + cint (mid (str, i, 1))
다음
str2num = ret
엔드 기능
개인 기능 binval (bin)
Dim Ret, i
ret = 0
i = lenb (빈)에서 1 단계 -1
ret = ret *256 + ASCB (Midb (bin, i, 1))
다음
binval = ret
엔드 기능
개인 기능 binval2 (bin)
Dim Ret, i
ret = 0
i = 1에서 lenb (bin)의 경우
ret = ret *256 + ASCB (Midb (bin, i, 1))
다음
binval2 = ret
엔드 기능
개인 기능 getImagesize (filespec)
희미한 bflag
Dim Ret (3)
aso.loadfromfile (filespec)
bflag = aso.read (3)
Case 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)
while (len (sconv) <nbits*4)
bindata = aso.read (1)
sconv = sconv & num2str (ASCB (bindata), 2, 8)
향하게 하다
ret (0) = "swf"
ret (1) = int (abs (str2num (sconv, 1*nbits+1, nbits), 2) -Str2num (MID (SCONV, 0*nbits+1, nbits), 2)/20)
ret (2) = int (abs (str2num (sconv, 3*nbits+1, nbits), 2) -Str2num (MID (SCONV, 2*nbits+1, nbits), 2)/20)
"ffd8ff"사례 :
하다
do : p1 = binval (aso.Read (1)) : 루프는 aso.eos가 아닌 p1 = 255입니다
P1> 191 및 P1 <196 인 경우 종료 aso.read (binval2 (aso.read (2)) -2)
do : p1 = binval (aso.read (1)) : 루프는 aso.eos가 아닌 p1 <255입니다
사실이지만 루프
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) = ""
끝 If
종료 선택
ret (3) = "width =" ""& ret (1) & "" "" "& ret (2) &" "" "" "" "" ""
getImagesize = ret
엔드 기능
공개 기능 imgw (imgpath)
dim fso, imgfile, fileext, arr
set fso = server.createobject ( "scripting.filesystemobject")