Img.asp
上传用户:xxtaishan
上传日期:2022-01-02
资源大小:4063k
文件大小:4k
源码类别:

IP电话/视频会议

开发平台:

ASP/ASPX

  1. <%
  2. Class  imgInfo  
  3.  dim  aso  
  4.  Private  Sub  Class_Initialize  
  5.    set  aso=CreateObject("Adodb.Stream")  
  6.    aso.Mode=3    
  7.    aso.Type=1    
  8.    aso.Open    
  9.  End  Sub  
  10.  Private  Sub  Class_Terminate
  11.    err.clear
  12.    set  aso=nothing  
  13.  End  Sub  
  14.  
  15.  Private  Function  Bin2Str(Bin)  
  16.    Dim  I,  Str  
  17.    For  I=1  to  LenB(Bin)  
  18.      clow=MidB(Bin,I,1)  
  19.      if  ASCB(clow)<128  then  
  20.        Str  =  Str  &  Chr(ASCB(clow))  
  21.      else  
  22.        I=I+1  
  23.        if  I  <=  LenB(Bin)  then  Str  =  Str  &  Chr(ASCW(MidB(Bin,I,1)&clow))  
  24.      end  if  
  25.    Next    
  26.    Bin2Str  =  Str  
  27.  End  Function  
  28.    
  29.  Private  Function  Num2Str(num,base,lens)  
  30.    dim  ret  
  31.    ret  =  ""  
  32.    while(num>=base)  
  33.      ret  =  (num  mod  base)  &  ret  
  34.      num  =  (num  -  num  mod  base)/base  
  35.    wend  
  36.    Num2Str  =  right(string(lens,"0")  &  num  &  ret,lens)  
  37.  End  Function  
  38.    
  39.  Private  Function  Str2Num(str,base)  
  40.    dim  ret  
  41.    ret  =  0  
  42.    for  i=1  to  len(str)  
  43.      ret  =  ret  *base  +  cint(mid(str,i,1))  
  44.    next  
  45.    Str2Num=ret  
  46.  End  Function  
  47.    
  48.  Private  Function  BinVal(bin)  
  49.    dim  ret  
  50.    ret  =  0  
  51.    for  i  =  lenb(bin)  to  1  step  -1  
  52.      ret  =  ret  *256  +  ascb(midb(bin,i,1))  
  53.    next  
  54.    BinVal=ret  
  55.  End  Function  
  56.    
  57.  Private  Function  BinVal2(bin)  
  58.    dim  ret  
  59.    ret  =  0  
  60.    for  i  =  1  to  lenb(bin)  
  61.      ret  =  ret  *256  +  ascb(midb(bin,i,1))  
  62.    next  
  63.    BinVal2=ret  
  64.  End  Function  
  65.    
  66.  Private  Function  getImageSize(filespec)    
  67.    dim  ret(3)  
  68.    aso.LoadFromFile(filespec)  
  69.    bFlag=aso.read(3)  
  70.    select  case  hex(binVal(bFlag))  
  71.    case  "4E5089":  
  72.      aso.read(15)  
  73.      ret(0)="PNG"  
  74.      ret(1)=BinVal2(aso.read(2))  
  75.      aso.read(2)  
  76.      ret(2)=BinVal2(aso.read(2))  
  77.    case  "464947":  
  78.      aso.read(3)  
  79.      ret(0)="GIF"  
  80.      ret(1)=BinVal(aso.read(2))  
  81.      ret(2)=BinVal(aso.read(2))  
  82.    case  "535746":  
  83.      aso.read(5)  
  84.      binData=aso.Read(1)  
  85.      sConv=Num2Str(ascb(binData),2  ,8)  
  86.      nBits=Str2Num(left(sConv,5),2)  
  87.      sConv=mid(sConv,6)  
  88.      while(len(sConv)<nBits*4)  
  89.        binData=aso.Read(1)  
  90.        sConv=sConv&Num2Str(ascb(binData),2  ,8)  
  91.      wend  
  92.      ret(0)="SWF"  
  93.      ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)  
  94.      ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)  
  95.    case  "FFD8FF":  
  96.      do    
  97.        do:  p1=binVal(aso.Read(1)):  loop  while  p1=255  and  not  aso.EOS  
  98.        if  p1>191  and  p1<196  then  exit  do  else  aso.read(binval2(aso.Read(2))-2)  
  99.        do:p1=binVal(aso.Read(1)):loop  while  p1<255  and  not  aso.EOS  
  100.      loop  while  true  
  101.      aso.Read(3)  
  102.      ret(0)="JPG"  
  103.      ret(2)=binval2(aso.Read(2))  
  104.      ret(1)=binval2(aso.Read(2))  
  105.    case  else:  
  106.      if  left(Bin2Str(bFlag),2)="BM"  then  
  107.        aso.Read(15)  
  108.        ret(0)="BMP"  
  109.        ret(1)=binval(aso.Read(4))  
  110.        ret(2)=binval(aso.Read(4))  
  111.      else  
  112.        ret(0)=""  
  113.      end  if  
  114.    end  select  
  115.    ret(3)="width="""  &  ret(1)  &"""  height="""  &  ret(2)  &""""  
  116.    getimagesize=ret  
  117.  End  Function  
  118.    
  119.  Public Function  imgW(pic_path)  
  120.      Set  fso1  =  server.CreateObject("Scripting.FileSystemObject")  
  121.      If (fso1.FileExists(pic_path)) Then 
  122.    Set  f1  =  fso1.GetFile(pic_path)  
  123.    ext=fso1.GetExtensionName(pic_path)  
  124.    select  case  ext  
  125.     case  "gif","bmp","jpg","png","GIF","BMP","JPG","PNG":  
  126.      arr=getImageSize(f1.path)  
  127.      imgW = arr(1)  
  128.    end  select  
  129.    Set  f1=nothing 
  130.   else
  131.       imgW = 0
  132.   End if   
  133.      Set  fso1=nothing  
  134.  End  Function  
  135.  
  136.  Public Function  imgH(pic_path)  
  137.      Set  fso1  =  server.CreateObject("Scripting.FileSystemObject") 
  138.   If (fso1.FileExists(pic_path)) Then 
  139.    Set  f1  =  fso1.GetFile(pic_path)  
  140.    ext=fso1.GetExtensionName(pic_path)  
  141.    select  case  ext  
  142.     case  "gif","bmp","jpg","png","GIF","BMP","JPG","PNG": 
  143.      arr=getImageSize(f1.path)  
  144.      imgH = arr(2)  
  145.    end  select  
  146.    Set  f1=nothing  
  147.   else
  148.    imgH = 0 
  149.   End if  
  150.      Set  fso1=nothing  
  151.  End  Function  
  152. End  Class
  153. %>