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 相关文章推荐
Jquery Ajax的Get方式时需要注意URL地方
Apr 07 Javascript
IE下使用cloneNode注意事项分享
Nov 22 Javascript
JQuery写动态树示例代码
Jul 31 Javascript
获得Javascript对象属性个数的示例代码
Nov 21 Javascript
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 Javascript
EasyUI加载完Html内容样式渲染完成后显示
Jul 25 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
jsonp跨域请求详解
Jul 13 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
May 23 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
JavaScript canvas实现雨滴特效
Jan 10 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应用程序的七个习惯深入分析
2013/06/08 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP中overload与override的区别
2017/02/13 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python之str操作方法(详解)
2017/06/19 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
25岁生日感言
2014/01/13 职场文书
医药销售自荐书
2014/05/29 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
党员个人承诺书
2015/04/27 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python