HTML-js 压缩上传的图片方法(默认上传的是file文件)
2024-08-20 22:51:42
//压缩图片方法
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返回
最新文章
- 如何设置jvm内存
- The error occurred while setting parameters--索引 3 超出范围 sqlserver2008
- 笔记:Hyper-V上Centos 6.5分辨率调整问题解决笔记
- Unity2.0容器自动注册机制
- Mysql安全配置
- 解决ie文本框不能输入和获取焦点问题
- java 面向对象编程--第17章 I/O系统
- ManagementFactory (二) getMemoryMXBean
- IIS7/8 HTTP Error 500.19 错误 0x80070021
- typedef与define基本使用
- php连接mysql数据库练手
- SQL总结之导入导出
- MVVM前后分离轻量级框架应用juicer和doT.js
- Spark应用_PageView_UserView_HotChannel
- Python之Pandas的一些理解
- Apache Hadoop 2.9.2 的YARN High Available 模式部署
- 继承ipkPlayer中出现的一些错误汇总
- 大众美团服务链监控CAT
- git 使用遇到的问题
- [工具] Textify – 复制不可能的窗口内容[Win]
热门文章
- 10.04 FZSZ模拟Day1 总结
- [App Store Connect帮助]三、管理 App 和版本(8)编辑 App 的用户访问权限
- [Swift通天遁地]一、超级工具-(13)使用PKHUD制作各种动态提示窗口
- ACM_错排(递推dp)
- ACM_01背包2
- ACM_01背包
- EditText(3)输入时自动完成功能
- Spring MVC过滤器-HiddenHttpMethodFilter
- Redis基础---5个基本数据结构(比较性记忆)
- IIS网站部署步骤以及常见异常解决方案