//压缩图片方法
function compressImg(file,callback){
var src;
var fileSize = parseFloat(parseInt(file['size'])/1024/1024).toFixed(2);
var read = new FileReader();
read.readAsDataURL(file);
read.onload = function (e) {
var img = new Image();
img.src = e.target.result;
img.onload = function(){
//默认按比例压缩
var w = this.width,
h = this.height;
//生成canvas
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var base64;
// 创建属性节点
canvas.setAttribute("width", w);
canvas.setAttribute("height", h);
ctx.drawImage(this, 0, 0, w, h);
if(fileSize<1){
//如果图片小于一兆 那么不执行压缩操作
base64 = canvas.toDataURL(file['type'], 1);
}else if(fileSize>1&&fileSize<2){
//如果图片大于1M并且小于2M 那么压缩0.5
base64 = canvas.toDataURL(file['type'], 0.5);
}else{
//如果图片超过2m 那么压缩0.2
base64 = canvas.toDataURL(file['type'], 0.2);
}
// 回调函数返回file的值
callback(base64);
};
};
};

图片压缩完成以后会转换成base64返回

最新文章

  1. 如何设置jvm内存
  2. The error occurred while setting parameters--索引 3 超出范围 sqlserver2008
  3. 笔记:Hyper-V上Centos 6.5分辨率调整问题解决笔记
  4. Unity2.0容器自动注册机制
  5. Mysql安全配置
  6. 解决ie文本框不能输入和获取焦点问题
  7. java 面向对象编程--第17章 I/O系统
  8. ManagementFactory (二) getMemoryMXBean
  9. IIS7/8 HTTP Error 500.19 错误 0x80070021
  10. typedef与define基本使用
  11. php连接mysql数据库练手
  12. SQL总结之导入导出
  13. MVVM前后分离轻量级框架应用juicer和doT.js
  14. Spark应用_PageView_UserView_HotChannel
  15. Python之Pandas的一些理解
  16. Apache Hadoop 2.9.2 的YARN High Available 模式部署
  17. 继承ipkPlayer中出现的一些错误汇总
  18. 大众美团服务链监控CAT
  19. git 使用遇到的问题
  20. [工具] Textify – 复制不可能的窗口内容[Win]

热门文章

  1. 10.04 FZSZ模拟Day1 总结
  2. [App Store Connect帮助]三、管理 App 和版本(8)编辑 App 的用户访问权限
  3. [Swift通天遁地]一、超级工具-(13)使用PKHUD制作各种动态提示窗口
  4. ACM_错排(递推dp)
  5. ACM_01背包2
  6. ACM_01背包
  7. EditText(3)输入时自动完成功能
  8. Spring MVC过滤器-HiddenHttpMethodFilter
  9. Redis基础---5个基本数据结构(比较性记忆)
  10. IIS网站部署步骤以及常见异常解决方案