AdoDb.stream gets the high and wide image
Upload images or show SWFs, I hope to get its height and width.
Basic principle uses the adoDb.stream read binary then parsing, then returns a number of first elements for the first element (BMP JPG PNG GIF SWF) The second element is the width {width} The third element is high {Height} fourth Element is width = {width}, height = {height} character string
Class Qswhimgdim asoPrivate Sub Class_initializset ASO = CREATEOBJECT ("AdoDb.Stream") aso.mode = 3 asbo.type = 1 aso.open end subprivate sub coplass_terminate set ASO = Nothingend sub
Private function bin2str (bin) DIM I, Strfor I = 1 to lenb (bin) CLOW = MIDB (BIN, I, 1) IF ASCB (CLOW) <128 Thenstr = STR & CHR (ASCB (CLOW) ELSEI = i 1IF i <= lenb (bin) THEN STR = STR & CHR (ASCW (MIDB (BIN, I, 1) & CLOW) end ifnext bin2str = strend function
Private function Num2Str (NUM, BASE, LENS) 'qiushuiwuhen (2002-8-12) DIM RETRET = "" While (NUM> = Base) RET = (Num MOD BASE) & RetNum = (Num - Num MOD BASE) / BaseWendNum2Str = Right (String (Lens, "0") & NUM & RET, LENS) End Function
Private function str2num (str, base) 'qiushuiwuhen (2002-8-12) DIM RETRET = 0for i = 1 to LEN (STR) RET = RET * BASE CINT (MID (STR, I, 1)) NextStr2Num = Retend FUNCTION
Private function binval (bin) 'qiushuiwuhen (2002-8-12) DIM RETRET = 0for i = lenb (bin) to 1 step -1ret = RET * 256 ASCB (MIDB (BIN, I, 1)) Nextbinval = Retend Function
Private function binval2 (bin) 'qiushuiwuhen (2002-8-12) DIM RETRET = 0for i = 1 to lenb (bin) RET = RET * 256 ASCB (MIDB (BIN, I, 1)) Nextbinval2 = Retend Function
Function GetImageSize (filespec) 'QiushuiWuhen (2002-9-3) DIM RET (3) ASO.LOADFROMFILE (FILESPEC) BFLAG = aso.read (3) Select Case HEX (Binval (bflag)) Case "4E5089": aso.read (15) RET (0) = "PNG" RET (1) = binval2 (ASO.READ (2)) ASO.READ (2) RET (2) = binval2 (ASO.READ (2)) Case "464947": Aso.read (3) RET (0) = "gif" RET (1) = binval (ASO.READ (2)) RET (2) = binval (aso.read (2)) Case "535746": aso.read (5) Bindata = aso.read (1) Sconv = Num2Str (ASCB (Bindata), 2, 8) NBITS = Str2Num (Left (Sconv, 5), 2) Sconv = MID (SCONV, 6) While (LEN (SCONV
SET FSO = CreateObject ("scripting.filesystemObject") set f = fsgetfolder (Server.mappath (")) SET FC = F.FilesFor Each F1 in fcext = fso.GETEXTENSIONNAME (F1.Path) Select Case Extcase GIF "," BMP "," JPG "," PNG ": arr = qswh.getiMageSize (f1.path) response.write"
"& arr (0) &" & arr (3) & ":" & f1.name & "Width:" & Arr (1) & "Height:" & Arr (2) Case "SWF" arr = qswh.getiMagesize (f1.path) response.write "
" & arr (0 ) & "& arr (3) &": "& f1.name &" width: "& arr (1) &" height: "& arr (2) end selectnextset fc = nothingset f = nothingset fso = NothingSet qswh = Nothing
PS. The reference of the SWF section is provided by blue,: P
Blue supplement: Since FlashMX uses a new compressed format SWF, the long width of the SWF file in the flashmx compression format does not accurately, the solution is being studied.