使用canvas压缩图片上传的方法示例


Posted in HTML / CSS onFebruary 07, 2020

因为原型图跟插件ui有出入,所以自己写了一个方法。。

首先得有一个上传按钮。

<input type="file" id="fileys" class="fileys" @change="uploadFile($event)" accept="image/*"/>
<!--uploadFile用change是因为。用户可能会重复选其他图片-->

入正题:

uploadFile:function(event){
let file = event.target.files[0]; //获取input的图片file值
let param = new FormData(); // 创建form对象
if(param.getAll('file')[0] == "undefined"){
        return false        //判断是不是空
      }
      
 let reader = new FileReader() 
  reader.readAsDataURL(file) //读取文件并将文件以URL的形式保存在resulr属性中 base64格式 ,,,网上文档好像规定了格式。。我就选了一个base64
  
  
  reader.onload = function(e) { // 文件读取完成时触发  
      let result = e.target.result // base64格式图片地址  
      var image = new Image()
      image.src = result // 设置image的地址为base64的地址  
      image.onload = function(){  
        var canvas = document.getElementById("canvas");  
        var context = canvas.getContext("2d");  
        canvas.width = image.width; // 设置canvas的画布宽度为图片宽度  
        canvas.height = image.height; 
        context.drawImage(image, 0, 0, image.width, image.height) // 在canvas上绘制图片  
        let dataUrl = canvas.toDataURL('image/jpeg', 0.001) //设置压缩比,可根据需要设置,设置过小会影响图片质量,dataUrl 为压缩后的图片资源,可将其上传到服务器  
  let tupian =  _this.dataURLtoFile(dataUrl, file.name)
        param.append('file', tupian);//对应后台接收图片名 

        //然后这里就可以写axios方法。去将这个param上传到后台

           } 
       } 
  
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
详解CSS样式中的 !important * _ 符号
Mar 09 HTML / CSS
利用CSS的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
详解纯CSS3制作的20种loading动效
Jul 05 HTML / CSS
CSS3教程(9):设置RGB颜色
Apr 02 HTML / CSS
你应该知道的30个css选择器
Mar 19 HTML / CSS
CSS3的常见transformation图形变化用法小结
May 13 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
Jul 06 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
Apr 01 HTML / CSS
24个canvas基础知识小结
Dec 17 HTML / CSS
HTML5单页面手势滑屏切换原理分析
Jul 10 HTML / CSS
H5混合开发app如何升级的方法
Jan 10 HTML / CSS
如何给HTML标签中的文本设置修饰线
Nov 18 HTML / CSS
div或img图片高度随宽度自适应的方法
Feb 06 #HTML / CSS
HTML5 实现图片上传预处理功能
Feb 06 #HTML / CSS
微信小程序canvas实现水平、垂直居中效果
Feb 05 #HTML / CSS
Html5定位终极解决方案
Feb 05 #HTML / CSS
canvas简单连线动画的实现代码
Feb 04 #HTML / CSS
html5手机键盘弹出收起的处理
Jan 20 #HTML / CSS
canvas实现烟花的示例代码
Jan 16 #HTML / CSS
You might like
PHP编程与应用
2006/10/09 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
利用Python开发实现简单的记事本
2016/11/15 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
树莓派安装OpenCV3完整过程的实现
2019/10/10 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
Django框架models使用group by详解
2020/03/11 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
教师的实习自我鉴定
2013/12/17 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
太太口服液广告词
2014/03/20 职场文书
党风廉设责任书
2014/04/16 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
承诺保证书格式
2015/02/28 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
python中对列表的删除和添加方法详解
2022/02/24 Python
MySQL数据库完全卸载的方法
2022/03/03 MySQL
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸