Adodb.Stream取得圖像的高寬

字號:

上傳圖片或顯示SWF的時候都希望得到它的高度和寬度
    基本原理使用Adodb.Stream讀二進(jìn)制文件然后進(jìn)行解析,然后返回一數(shù)組
    第一個元素為類型(BMP JPG PNG GIF SWF)
    第二個元素為寬度{width}
    第三個元素為高度{height}
    第四個元素為width={width},height={height}式字符串
    Class qswhImg
     dim aso
     Private Sub Class_Initialize
     set aso=CreateObject("Adodb.Stream")
     aso.Mode=3
     aso.Type=1
     aso.Open
     End Sub
     Private Sub Class_Terminate
     set aso=nothing
     End Sub
     Private Function Bin2Str(Bin)
     Dim I, Str
     For I=1 to LenB(Bin)
     clow=MidB(Bin,I,1)
     if ASCB(clow)<128 then
     Str = Str & Chr(ASCB(clow))
     else
     I=I+1
     if I <= LenB(Bin) then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
     end if
     Next
     Bin2Str = Str
     End Function
     Private Function Num2Str(num,base,lens)
     'qiushuiwuhen (2002-8-12)
     dim ret
     ret = ""
     while(num>=base)
     ret = (num mod base) & ret
     num = (num - num mod base)/base
     wend
     Num2Str = right(string(lens,"0") & num & ret,lens)
     End Function
     Private Function Str2Num(str,base)
     'qiushuiwuhen (2002-8-12)
     dim ret
     ret = 0
     for i=1 to len(str)
     ret = ret *base + cint(mid(str,i,1))
     next
     Str2Num=ret
     End Function
     Private Function BinVal(bin)
     'qiushuiwuhen (2002-8-12)
     dim ret
     ret = 0
     for i = lenb(bin) to 1 step -1
     ret = ret *256 + ascb(midb(bin,i,1))
     next
     BinVal=ret
     End Function
     Private Function BinVal2(bin)
     'qiushuiwuhen (2002-8-12)
     dim ret
     ret = 0
     for i = 1 to lenb(bin)
     ret = ret *256 + ascb(midb(bin,i,1))
     next
     BinVal2=ret
     End Function