公  告
 
  站点日历
 
  日志分类
 
  最新日志
 
  最新评论
 
  最新留言
 
  用户登陆
 
  日志搜索
 
  统计信息
 

  友情连接
 
  ASP获取上传图片的长宽
[ 2006-7-8 13:18:31 | By: myfamily ]
 
 

<%
'---------------------------------------RETURN THE IMAGE FORMAT--------------------
'输入参数为二进制数据流
function getImgWidHight(checkdata)
'--return: A,B,C (A is image format; B is height pixels; C is width pixels; D is color depth)
dim flag
flag=0  '''''''0 is not jpg/gif/png image; 1 is jpg/gif/png
 
  '-------------------------------------------------------check jpg----------------
dim tempstr,tstr,msgstr,msgstr01,lngSize,flgFound,strTarget,lngPos,ExitLoop,lngMarkerSize
if flag=0 then
  tempstr=Leftb(checkdata,10)
  tstr=chrb(255)&chrb(216)&chrb(255)&chrb(224)&chrb(0)&chrb(16)&chrb(74)&chrb(70)&chrb(73)&chrb(70)
  if strcomp(tempstr,tstr,0)=0 then
     msgstr01="jpg"
       lngSize = len(checkdata)
     flgFound = 0
   
    strTarget = chrb(255) & chrb(216) & chrb(255)
    flgFound = instrb(checkdata, strTarget)

    lngPos = flgFound + 2
    ExitLoop = false

    do while ExitLoop = False and lngPos < lngSize

      do while ascb(midb(checkdata, lngPos, 1)) = 255 and lngPos < lngSize
        lngPos = lngPos + 1
      loop

      if ascb(midb(checkdata, lngPos, 1)) < 192 or ascb(midb(checkdata, lngPos, 1)) > 195 then
        lngMarkerSize = lngConvert2(midb(checkdata, lngPos + 1, 2))
        lngPos = lngPos + lngMarkerSize + 1
      else
        ExitLoop = True
      end if

    loop

    i_Height = lngConvert2(midb(checkdata,  lngPos +4, 2))
    i_Width  = lngConvert2(midb(checkdata, lngPos +6, 2))
    i_Depth  = 2 ^ (ascb(midb(checkdata, lngPos + 8, 1)) * 8)
    msgstr02=","& i_height & "," & i_width
    flag=2
  else
    flag=0
  end if


end if
  '--------------------------------------------------check gif--------------------------------
  dim tstr2,msgstr02,msgStr03,msgStr04
   if flag=0 then
    tempstr=Leftb(checkdata,6)
    tstr=chrb(71)&chrb(73)&chrb(70)&chrb(56)&chrb(57)&chrb(97)
    tstr2=chrb(71)&chrb(73)&chrb(70)&chrb(56)&chrb(55)&chrb(97)
    if strcomp(tempstr,tstr,0)=0 or strcomp(tempstr,tstr2)=0 then
      msgstr03="gif"
   
      i_width=lngConvert(midb(checkdata,7,2))
      i_height=lngConvert(midb(checkdata,9,2))
      i_Depth = 2 ^ ((ascb(midb(checkdata, 11, 1)) and 7) + 1)
      msgstr04=","& i_height & ","& i_width
     
      flag=2
    else
      flag=0
    end if
  end if

  '---------------------------------------------------check png------------------------------
  dim msgStr05,msgstr06,msgstr07,i_width,i_height,i_depth
  if flag=0 then
    tempstr=Leftb(checkdata,4)
    tstr=chrb(137)&chrb(80)&chrb(78)&chrb(71)
    if strcomp(tempstr,tstr,0)=0 then
      msgstr05="png"
       
      i_Width  = lngConvert2(midb(checkdata, 19, 2))
      i_Height = lngConvert2(midb(checkdata, 23, 2))
      i_Depth  = lngConvert(midb(checkdata, 25, 2))

      select case ascb(right(i_Depth,1))
        case 0
          i_Depth   = 2 ^ (asc(left(i_Depth, 1)))
          gfxSpex = True
        case 2
          i_Depth   = 2 ^ (asc(left(i_Depth, 1)) * 3)
          gfxSpex = True
        case 3
          i_Depth   = 2 ^ (asc(left(i_Depth, 1))) '8
          gfxSpex = True
        case 4
          i_Depth   = 2 ^ (asc(left(i_Depth, 1)) * 2)
          gfxSpex = True
        case 6
          i_Depth   = 2 ^ (asc(left(i_Depth, 1)) * 4)
          gfxSpex = True
        case else
          i_Depth   = -1
      end select
      msgstr06=","& i_height & ","& i_width

      flag=2
    else
      flag=0
    end if
  end if
 
  if flag=0 then
     msgstr07="no image"
  end if
  msgstr=msgstr01 & msgstr02 & msgstr03 & msgstr04 & msgstr05 & msgstr06 & msgstr07
  getImgWidHight=msgstr
  'getImgWidHight = Split(msgstr, ",")
end function

function lngConvert2(strTemp)
  dim str1,str2
  str1=leftb(strTemp,1)
  str2=rightb(strTemp,1)
  lngConvert2 = clng(ascb(str2) + ((ascb(str1) * 256)))
end function

function lngConvert(strTemp)
  dim str1,str2,len1,len2
  str1=leftb(strTemp,1)
  str2=rightb(strTemp,1)
  len1=ascb(str1)
  len2=ascb(str2)
  lngConvert = clng(ascb(str1) + ascb(str2) * 256)
end function
%>

 

发表评论:

    昵称:
    密码: (游客无须输入密码)
    主页:
    标题:
 
 
 
Powered by Oblog.