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解析json数据的3种方式
May 08 Javascript
JavaScript学习心得之概述
Jan 20 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
Nov 17 Javascript
微信小程序 教程之数据绑定
Oct 18 Javascript
js实现小窗口拖拽效果
Dec 03 Javascript
jQuery代码实现实时获取时间
Jan 29 Javascript
layui前段框架日期控件使用方法详解
May 19 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
JS设计模式之单例模式(一)
Sep 29 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 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入门小知识
2008/03/24 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
js实现购物车功能
2018/06/12 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Python正则表达式的使用范例详解
2014/08/08 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
初学者学习Python好还是Java好
2020/05/26 Python
python中的错误如何查看
2020/07/08 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
浅析python连接数据库的重要事项
2021/02/22 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
企业贷款委托书格式
2014/09/12 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
python APScheduler执行定时任务介绍
2022/04/19 Python
python单向链表实例详解
2022/05/25 Python
windows server2008 开启端口的实现方法
2022/06/25 Servers