js图片处理示例代码


Posted in Javascript onMay 12, 2014
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); 
} 
}
Javascript 相关文章推荐
JavaScript的面向对象(二)
Nov 09 Javascript
javascript动态加载二
Aug 22 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
JavaScript判断对象是否为数组
Dec 22 Javascript
JavaScript中数组的22种方法必学(推荐)
Jul 20 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
微信小程序如何实现精确的日期时间选择器
Jan 21 Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 Javascript
jquery实现的一个简单进度条效果实例
May 12 #Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
May 12 #Javascript
再谈Jquery Ajax方法传递到action(补充)
May 12 #Javascript
Jquery Ajax方法传值到action的方法
May 11 #Javascript
json的定义、标准格式及json字符串检验
May 11 #Javascript
Jquery操作js数组及对象示例代码
May 11 #Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
May 11 #Javascript
You might like
用PHP实现文件上传二法
2006/10/09 PHP
Wordpress php 分页代码
2009/10/21 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
使用js画图之圆、弧、扇形
2015/01/12 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
fastadmin中调用js的方法
2019/05/14 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
web.py在模板中输出美元符号的方法
2014/08/26 Python
python自动化测试实例解析
2014/09/28 Python
python处理二进制数据的方法
2015/06/03 Python
使用python存储网页上的图片实例
2018/05/22 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
Python 线程池用法简单示例
2019/10/02 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
外语学院毕业生的自我鉴定
2013/11/28 职场文书
毕业生自我鉴定
2013/12/04 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
保险公司年会主持词
2014/03/22 职场文书
学习交流会主持词
2014/04/01 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
催款函怎么写
2015/06/24 职场文书
Linux磁盘管理方法介绍
2022/06/01 Servers