因为有这个需求(移动端),所以就研究了一下,发现还挺不错的。
这个主要是用了html5的API,不需要其他的JS插件,不过只有支持html5的浏览器才行,就现在而言应该大部份都支持的。
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<head>
<title></title>
</head>
<body> <img id="expImg"/>
<img id="img" style="display:none"/>
<div><input type="file" id="file"></div>
<div id="btn" style="font-size:48px; line-height:60px">确定</div> </body>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript"> $(document).ready(function(){
web.main();
}); var web={
main : function(){
web.init();
web.getImgUrl();
},
init : function(){
this.file_Id=$("#file");
this.img_Id=$("#img");
this.expImg_Id=$("#expImg");
this.btn_Id=$("#btn");
this.c=document.createElement("canvas");
this.ctx=this.c.getContext("2d");
},
getImgUrl : function(){
var fileUrl="",imgDataUrl="",reader=new FileReader(),imgW=0,imgH=0,expW=0,expH=0,imgMax=800; web.btn_Id.click(function(){
imgW=0;
imgH=0;
expW=0;
expH=0;
web.img_Id[0].src=""; //转换图片为base64格式
fileUrl=web.file_Id[0].files[0];
reader.readAsDataURL(fileUrl); reader.onload=function(e){
web.img_Id[0].src=this.result; imgW=web.img_Id.width();
imgH=web.img_Id.height(); //改变图片尺寸,这个根据自己的实际需求来写算法
if(imgW>imgMax&&imgW>=imgH){
expW=imgMax;
expH=parseInt((imgMax*imgH)/imgW);
}else if(imgH>imgMax&&imgH>imgW){
expH=imgMax;
expW=parseInt((imgMax*imgW)/imgH);
}else{
expW=imgW;
expH=imgH;
} web.c.width=expW;
web.c.height=expH; web.ctx.drawImage(web.img_Id[0],0,0,expW,expH); imgDataUrl=web.c.toDataURL(); //默认输出PNG格式
//imgDataUrl=web.c.toDataURL("image/jpeg",0.8); //设置输出jpg格式,第二个参数为图片质量
web.expImg_Id[0].src=imgDataUrl;
}
})
}
}
</script>
</html>

  

最新文章

  1. .Net Core 跨平台系列之环境部署
  2. EJDK, Raspberry Pi, and NetBeans IDE 8
  3. 说说Java生态圈的那些事儿
  4. OpenJudge计算概论-错误探测
  5. 实例源码--Android理财工具源码
  6. Msp430概述
  7. leetcode problem 41 -- First Missing Positive
  8. AD域环境的搭建 基于Server 2008 R2
  9. 关于扩展IP地址空间的几个方案的探讨
  10. cuda编程学习2——add
  11. Page directive must not have multiple occurrences of pageencoding
  12. meta小结
  13. VB.NET 泛型类型的应用经验
  14. js运用5
  15. macOS 下NFS 文件系统挂载
  16. Bootstrap手风琴效果
  17. virtualBox NAT模式,设置虚拟机可上网,宿主机可访问虚拟机的方法
  18. UI设计技术分享:教你几个设计技巧让老板对你的设计赞不绝口
  19. js css等静态文件版本控制,一处配置多处更新.net版【原创】
  20. 【php正则】php正则匹配UTF-8格式的中文汉字 和 【,】【,】【。】等符号

热门文章

  1. BZOJ1915: [Usaco2010 Open]奶牛的跳格子游戏
  2. 如何用iframe标签以及Javascript制作时钟?
  3. java编程思想-java 异常使用指南
  4. ASP------ActioinResult之多种返回值
  5. ajax请求下拉列表框的实现(面向对象封装类)
  6. llinux 查看自己的公网ip
  7. Random类
  8. Java关键字——super
  9. CentOS系统rsync文件同步 安装配置
  10. HTML5 常用的结构化标签整理