马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全缩略图|无组件网上有很多天生缩略图的ASP组件。若你的假造空间不撑持注册新组件,大概会感到本人的网站失容很多。心晴鄙人,分离网上资本写了个无组件天生缩略图程序,仅供参考。仍是先看看基本部分吧。起首,我们晓得在页面中显现图片是以下代码:
<imgsrc="http://www.163design.net/a/f/pic.gif"border="0"width="300"height="260">
src是图片路径,border把持图片边沿宽度,width是图片的长度,height是图片的高度。缩略图的天生实在就是在原始尺寸上缩放。但通常是了只管少掉真,我们城市按比例缩放。因而,猎取图片的长宽尺寸也就成了天生缩略图的重点。
上面即是编写无组件天生缩略图的步骤:
1.无组件猎取图片巨细
之前刚学ASP不久时看到过一篇使用ASCII码完成无组件猎取图片尺寸的文章。厥后试了试,发明在猎取jpg类图片尺寸时老是不克不及准确显现,在网上查了查,竟然有很多网站转载这个程序,但没有一家指出此程序的缺点,也就更谈不上办理缺点的举措了。厥后又google了一下,终究找到了一篇先容使用ADODB.stream猎取图片尺寸的文章,按其先容的办法,修正内里的代码试了试,效果然的还不错,如今将其拿出来与人人分享:
使用ADODB.stream猎取图片尺寸的通用类<%
////////////GPS:GetPictureSize//////////////
//////////////使用ADODB.stream猎取图片尺寸//////////////
/////////CitedByLeon(心晴)2005年8月11日//////////
ClassGPS
Dimaso
PrivateSubClass_Initialize
Setaso=CreateObject("Adodb.Stream")
aso.Mode=3
aso.Type=1
aso.Open
EndSub
PrivateSubClass_Terminate
setaso=nothing
EndSub
PrivateFunctionBin2Str(Bin)
DimI,Str
ForI=1toLenB(Bin)
clow=MidB(Bin,I,1)
ifAscB(clow)<128then
Str=Str&Chr(ASCB(clow))
Else
I=I+1
ifI<=LenB(Bin)thenStr=Str&Chr(ASCW(MidB(Bin,I,1)&clow))
endIf
Next
Bin2Str=Str
EndFunction
PrivateFunctionNum2Str(num,base,lens)
GPS(2005-8-11)
dimret
ret=""
while(num>=base)
ret=(nummodbase)&ret
num=(num-nummodbase)/base
wend
Num2Str=right(string(lens,"0")&num&ret,lens)
EndFunction
PrivateFunctionStr2Num(str,base)
GPS(2005-8-11)
dimret
ret=0
fori=1tolen(str)
ret=ret*base+cint(mid(str,i,1))
next
Str2Num=ret
EndFunction
PrivateFunctionBinVal(bin)
GPS(2002-8-11)
dimret
ret=0
fori=lenb(bin)to1step-1
ret=ret*256+ascb(midb(bin,i,1))
next
BinVal=ret
EndFunction
PrivateFunctionBinVal2(bin)
GPS(2002-8-11)
dimret
ret=0
fori=1tolenb(bin)
ret=ret*256+ascb(midb(bin,i,1))
next
BinVal2=ret
EndFunction
///以下是挪用代码///
FunctiongetImageSize(filespec)
GPS(2002-8-11)
dimret(3)
aso.LoadFromFile(filespec)
bFlag=aso.read(3)
selectcasehex(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)):loopwhilep1=255andnotaso.EOS
ifp1>191andp1<196thenexitdoelseaso.read(binval2(aso.Read(2))-2)
do:p1=binVal(aso.Read(1)):loopwhilep1<255andnotaso.EOS
loopwhiletrue
aso.Read(3)
ret(0)="JPG"
ret(2)=binval2(aso.Read(2))
ret(1)=binval2(aso.Read(2))
caseelse:
ifleft(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)=""
endif
endselect
ret(3)="width="""&ret(1)&"""height="""&ret(2)&""""
getimagesize=ret
EndFunction
EndClass
%>
将以上代码复制天生GPS.asp文件,如许无组件猎取图片尺寸的通用类就OK了。
2.猎取图片路径
因为不但一张图片,和图片需分类寄存,我们在数据库中计划了一个寄存图片绝对路径的字段ImgURL。我们把上传的图片都放在一个名为images的文件夹中(至于怎样无组件上传图片心晴就不在多说了)。如今我们先计划一个ShowImg.asp页面用来显现缩略图及相干信息。详细计划以下:
图片:
图片格局:
图片尺寸:
图片巨细:
点击次数:
上面,我们猎取图片的相对路径。代码以下:
<P><%
/////猎取ShowImg.asp的相对路径/////
DimcurFile
curFile=Server.mappath(Request.servervariables("PATH_INFO"))
Dimcurfilename,filename
/////图片绝对路径(存于数据库中)
cufilename=rs("ImgURL")
/////由于ShowImg.asp与images在统一目次,以是我们用instrrev猎取images的路径/////
filename=left(curFile,instrrev(curFile,""))&cufilename
&n
asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关. |