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 相关文章推荐
一个对于Array的简单扩展
Oct 03 Javascript
将函数的实际参数转换成数组的方法
Jan 25 Javascript
调试Node.JS的辅助工具(NodeWatcher)
Jan 04 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
May 21 Javascript
js实现的捐赠管理完整实例
Jan 20 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
May 12 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
在移动端使用vue-router和keep-alive的方法示例
Dec 02 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
Javascript原型链及instanceof原理详解
May 25 Javascript
微信小程序实现弹幕墙(祝福墙)
Nov 18 Javascript
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
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
php数组查找函数总结
2014/11/18 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
Js组件的一些写法
2010/09/10 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
js常用DOM方法详解
2017/02/04 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
python利用platform模块获取系统信息
2020/10/09 Python
《云雀的心愿》教学反思
2014/02/25 职场文书
民生工程实施方案
2014/03/22 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android