js圖片處理範例程式碼

來源:互聯網
上載者:User

複製代碼 代碼如下:
var ImgObj=new Image(); //建立一個映像對象
var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"//全部圖片格式類型
var FileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,HasCheked,IsImg//全域變數 圖片相關屬性
//以下為限制變數
var AllowExt=".jpg|.gif|.doc|.txt|" //允許上傳的檔案類型 ?為無限制 每個副檔名後邊要加一個"|" 小寫字母表示
var AllowImgFileSize=70; //允許上傳圖片檔案的大小 0為無限制 單位:KB
var AllowImgWidth=500; //允許上傳的圖片的寬度 ?為無限制 單位:px(像素)
var AllowImgHeight=500; //允許上傳的圖片的高度 ?為無限制 單位:px(像素)
HasChecked=false;
function CheckProperty(obj) //檢測映像屬性
{
FileObj=obj;
if(ErrMsg!="") //檢測是否為正確的影像檔 返回出錯資訊並重設
{
ShowMsg(ErrMsg,false);
return false; //返回
}
ImgFileSize=Math.round(ImgObj.fileSize/1024*100)/100;//取得圖片檔案的大小
ImgWidth=ImgObj.width; //取得圖片的寬度
ImgHeight=ImgObj.height; //取得圖片的高度
FileMsg="\n圖片大小:"+ImgWidth+"*"+ImgHeight+"px";
FileMsg=FileMsg+"\n圖片檔案大小:"+ImgFileSize+"Kb";
FileMsg=FileMsg+"\n圖片副檔名:"+FileExt;
if(AllowImgWidth!=0&&AllowImgWidth<ImgWidth)
ErrMsg=ErrMsg+"\n圖片寬度超過限制。請上傳寬度小於"+AllowImgWidth+"px的檔案,當前圖片寬度為"+ImgWidth+"px";
if(AllowImgHeight!=0&&AllowImgHeight<ImgHeight)
ErrMsg=ErrMsg+"\n圖片高度超過限制。請上傳高度小於"+AllowImgHeight+"px的檔案,當前圖片高度為"+ImgHeight+"px";
if(AllowImgFileSize!=0&&AllowImgFileSize<ImgFileSize)
ErrMsg=ErrMsg+"\n圖片檔案大小超過限制。請上傳小於"+AllowImgFileSize+"KB的檔案,當前檔案大小為"+ImgFileSize+"KB";
if(ErrMsg!="") ShowMsg(ErrMsg,false);
else ShowMsg(FileMsg,true);
}
ImgObj.onerror=function(){ErrMsg='\n圖片格式不正確或者圖片已損壞!'}
function ShowMsg(msg,tf) //顯示提示資訊 tf=true 顯示檔案資訊 tf=false 顯示錯誤資訊 msg-資訊內容
{
msg=msg.replace("\n","<li>");
msg=msg.replace(/\n/gi,"<li>");
if(!tf)
{
FileObj.outerHTML=FileObj.outerHTML;
MsgList.innerHTML=msg;
HasChecked=false;
}else{
if(IsImg) PreviewImg.innerHTML="<img src='"+ImgObj.src+"' width='60' height='60'>";
else PreviewImg.innerHTML="非圖片檔案";
MsgList.innerHTML=msg;
HasChecked=true;
}
}
function CheckExt(obj)
{
ErrMsg="";
FileMsg="";
FileObj=obj;
IsImg=false;
HasChecked=false;
PreviewImg.innerHTML="預覽區";
if(obj.value=="")return false;
MsgList.innerHTML="檔案資訊處理中...";
FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
if(AllowExt!=0&&AllowExt.indexOf(FileExt+"|")==-1) //判斷檔案類型是否允許上傳
{
ErrMsg="\n該檔案類型不允許上傳。請上傳 "+AllowExt+" 類型的檔案,當前檔案類型為"+FileExt;
ShowMsg(ErrMsg,false);
return false;
}
if(AllImgExt.indexOf(FileExt+"|")!=-1) //如果圖片檔案,則進行圖片資訊處理
{
IsImg=true;
ImgObj.src=obj.value;
alert(ImgObj.src);
alert(Math.round(ImgObj.fileSize/1024*100)/100);
CheckProperty(obj);
return false;
}else{
FileMsg="\n副檔名:"+FileExt;
ShowMsg(FileMsg,true);
}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.