请问在asp如果得知图像的长宽高??

wint_zyc 2004-10-11 11:35:18
如何得到图像的长与宽还请高手指点一二!!
...全文
98 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eliphe 2004-10-21
  • 打赏
  • 举报
回复
ibqsImage 图像处理组件 v2.0

组件介绍:
  组件支持多种图片格式,包括bmp,jpg,gif,wmf,emf,ico,png,pcx,tif,tga,pcx,dcx等。
  组件提供两种输出接口,包括保存,直接显示(您再也不用定时清理那些临时的垃圾图片)。
  组件提供灵活多样的自由绘图和设计方式,图像处理、缩放、翻转、旋转等更加轻松快捷。
  组件提供灵活的水印安全贴图,满足各种图像安全防伪和商标版权签证方面的需求。
  组件采用多种图片输出格式(包括jpg,gif,bmp,png),可自定义图像质量,适合不同网络速度和图像质量要求。
  采用了标准的Com组件方式,只需服务器端注册即可,而再也不用担心客户机是否支持。
  组件可设定大量样式、特效、渐变,加强图像美感,可直接设定色度、饱和度、亮度或灰度等。

下载地址:
http://www.ibqs.com/U_View_xzzx_detail.asp?CID=32
xingworld 2004-10-21
  • 打赏
  • 举报
回复
用这个类就可以了
不需要组件
我一直用的很好
而且还可以得到 flash 的 swf 文件的高和宽

xingworld 2004-10-21
  • 打赏
  • 举报
回复
<%

'上传图片或显示SWF的时候都希望得到它的高度和宽度

'基本原理使用Adodb.Stream读二进制文件然后进行解析,然后返回一数组
'第一个元素为类型(BMP JPG PNG GIF SWF)
'第二个元素为宽度{width}
'第三个元素为高度{height}
'第四个元素为width={width},height={height}式字符串

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'10:16 2002-12-8

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
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

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)<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)
end if
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
End Class


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


%>
opolmzy 2004-10-12
  • 打赏
  • 举报
回复
JS!

否则需要组件支持

除非......
Estyle 2004-10-12
  • 打赏
  • 举报
回复
建议:
以后提问前先“全文搜索”一下。
或许FAQ里面也有这个……
Estyle 2004-10-12
  • 打赏
  • 举报
回复
给你这个吧:
http://search.csdn.net/Expert/topic/649/649571.xml?temp=.5195276

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧