让我们一起爱米兰
站内搜搜:
移动设备
请扫描二维码
或访问
m.milan100.com
您所在的位置 -> 米兰百分百 -> ASP -> 利用asp获得图片尺寸大小

利用asp获得图片尺寸大小

点击数:934 发表时间:2010-07-23 17:36:06 作者: 来源链接:
分享到:
分享到微信

<%  
imgpath="default_22.gif"

 set  pp=new  imginfo  
 w = pp.imgw(server.mappath(imgpath))  
 h = pp.imgh(server.mappath(imgpath)) 
 set pp=nothing 
 
response.write "<img src='http://www.webjx.com/"&imgpath&"' border=0><br>宽:"&w&";高:"&h

class  imginfo  
 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
   err.clear
   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)  
   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)  
   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)  
   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)  
   dim  ret  
   ret  =  0  
   for  i  =  1  to  lenb(bin)  
     ret  =  ret  *256  +  ascb(midb(bin,i,1))  
   next  
   binval2=ret  
 end  function  
   
 private  function  getimagesize(filespec)    
   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)<nbits*4)  
       bindata=aso.read(1)  
       sconv=sconv&num2str(ascb(bindata),2  ,8)  
     wend  
     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)  
   case  "ffd8ff":  
     do    
       do:  p1=binval(aso.read(1)):  loop  while  p1=255  and  not  aso.eos  
       if  p1>191  and  p1<196  then  exit  do  else  aso.read(binval2(aso.read(2))-2)  
       do:p1=binval(aso.read(1)):loop  while  p1<255  and  not  aso.eos  
     loop  while  true  
     aso.read(3)  
     ret(0)="jpg"  
     ret(2)=binval2(aso.read(2))  
     ret(1)=binval2(aso.read(2))  
   case  else:  
     if  left(bin2str(bflag),2)="bm"  then  
       aso.read(15)  
       ret(0)="bmp"  
       ret(1)=binval(aso.read(4))  
       ret(2)=binval(aso.read(4))  
     else  
       ret(0)=""  
     end  if  
   end  select  
   ret(3)="width="""  &  ret(1)  &"""  height="""  &  ret(2)  &""""  
   getimagesize=ret  
 end  function  
   
 public function  imgw(pic_path)  
     set  fso1  =  server.createobject("scripting.filesystemobject")  
     if (fso1.fileexists(pic_path)) then 
   set  f1  =  fso1.getfile(pic_path)  
   ext=fso1.getextensionname(pic_path)  
   select  case  ext  
    case  "gif","bmp","jpg","png":  
     arr=getimagesize(f1.path)  
     imgw = arr(1)  
   end  select  
   set  f1=nothing 
  else
      imgw = 0
  end if   
     set  fso1=nothing  
 end  function  
 
 public function  imgh(pic_path)  
     set  fso1  =  server.createobject("scripting.filesystemobject") 
  if (fso1.fileexists(pic_path)) then 
   set  f1  =  fso1.getfile(pic_path)  
   ext=fso1.getextensionname(pic_path)  
   select  case  ext  
    case  "gif","bmp","jpg","png":  
     arr=getimagesize(f1.path)  
     imgh = arr(2)  
   end  select  
   set  f1=nothing  
  else
   imgh = 0 
  end if  
     set  fso1=nothing  
 end  function  
end  class
%>
 

0
很 好
0
一 般
0
差 劲
热门新闻
相关文章
上一篇: ASP中Cookie使用指南
下一篇: ASP+MsSqlServer 存储过程分页
评论区
匿名

返回首页 | 收藏本页 | 回到顶部
Copyright 2010. 米兰百分百 Powered By Bridge.
京ICP备15050557号