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中instanceof对于不同的构造器或许都返回true
Dec 03 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
Apr 06 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
Mar 05 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
seajs学习教程之基础篇
Oct 20 Javascript
vue使用自定义icon图标的方法
May 14 Javascript
vue 实现一个简单的全局调用弹窗案例
Sep 10 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
Oct 15 Javascript
详解Vue的sync修饰符
May 15 Vue.js
js不常见操作运算符总结
Nov 20 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
用PHP将数据导入到Foxmail
2006/10/09 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php-fpm中max_children的配置
2019/03/15 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
详解vue中localStorage的使用方法
2018/11/22 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
python分数表示方式和写法
2019/06/26 Python
Python Collatz序列实现过程解析
2019/10/12 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
项目建议书
2015/02/04 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
Python基础之进程详解
2021/05/21 Python
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server