asp,php,js获取图片大小并控制

asp,php,js获取图片大小并控制

本文章讲了二种获取图片的大小,第一种是php ,第二种是js 第三种是asp的,js 获取图片大小然后再用js 改变图片大小,下面我们有例子说明. php相当简单的,用getimagesize 函数就行了,我们只要对得到的数组进行处理就行了.<?$arr=getimagesize("images/album_01.gif"); echo $arr[3];$strarr=explode("\&;",$arr[3]);echo $strarr[1];?>再看看asp获取图片大小并进行缩放的函数

<% Class ImgWHInfo ’获取图片宽度和高度的类,支持JPG,GIF,PNG,BMP Dim ASO Private Sub Class_Initialize Set ASO=Server.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,I 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,I 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,I 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 bFlag 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(IMGPath) Dim FSO,IMGFile,FileExt,Arr Set FSO = Server.CreateObject("Scripting.FileSystemObject") If (FSO.FileExists(IMGPath)) Then Set IMGFile = FSO.GetFile(IMGPath) FileExt=FSO.GetExtensionName(IMGPath) Select Case FileExt Case "gif","bmp","jpg","png": Arr=GetImageSize(IMGFile.Path) imgW = Arr(1) End Select Set IMGFile=Nothing Else imgW = 0 End If Set FSO=Nothing End Function Public Function imgH(IMGPath) Dim FSO,IMGFile,FileExt,Arr Set FSO = server.CreateObject("Scripting.FileSystemObject") If (FSO.FileExists(IMGPath)) Then Set IMGFile = FSO.GetFile(IMGPath) FileExt=FSO.GetExtensionName(IMGPath) Select Case FileExt Case "gif","bmp","jpg","png": Arr=getImageSize(IMGFile.Path) imgH = Arr(2) End Select Set IMGFile=Nothing Else imgH = 0 End If Set FSO=Nothing End Function End Class IMGPath="Test.jpg" Set PP = New ImgWHInfo W = PP.imgW(Server.Mappath(IMGPath)) H = PP.imgH(Server.Mappath(IMGPath)) Set pp = Nothing Response.Write("<img src=’"&IMGPath&"’ border=0><br>宽:"&W&";高:"&H) %>

下面是js获取图片大小并控制大小的例子.<HTML> <HEAD> <TITLE>演示图片等比例缩小</TITLE> <script> function Wa_SetImgAutoSize(img) { //var img=document.all.img1;//获取图片 var MaxWidth=200;//设置图片宽度界限 var MaxHeight=100;//设置图片高度界限 var HeightWidth=img.offsetHeight/img.offsetWidth;//设置高宽比 var WidthHeight=img.offsetWidth/img.offsetHeight;//设置宽高比 alert("test"+img.offsetHeight+img.fileSize);if(img.offsetHeight>1) alert(img.offsetHeight);if(img.readyState!="complete"){return false;//确保图片完全加载}

if(img.offsetWidth>MaxWidth){ img.width=MaxWidth; img.height=MaxWidth*HeightWidth; } if(img.offsetHeight>MaxHeight){ img.height=MaxHeight; img.width=MaxHeight*WidthHeight; } }

function CheckImg(img) { var message="";var MaxWidth=1;//设置图片宽度界限 var MaxHeight=1;//设置图片高度界限 if(img.readyState!="complete"){ return false;//确保图片完全加载}if(img.offsetHeight>MaxHeight) message+="\r高度超额:"+img.offsetHeight;if(img.offsetWidth>MaxWidth) message+="\r宽度超额:"+img.offsetWidth;if(message!="") alert(message);} </script> </HEAD> <BODY> <img src="images/frequency.gif" border=0 id="img1" onload="CheckImg(this);"> <br> <input id=inp type="file" onpropertychange="img1.src=this.value;"> </BODY> </HTML>

正确的寒暄必须在短短一句话中明显地表露出你对他的关怀。

asp,php,js获取图片大小并控制

相关文章:

你感兴趣的文章:

标签云: