使用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样式无效的十个重要原因详解
Aug 10 HTML / CSS
纯CSS3实现地球自转实现代码(图文教程附送源码)
Dec 26 HTML / CSS
IE滤镜与CSS3效果(详细整理分享)
Jan 25 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
Jan 31 HTML / CSS
css3中less实现文字长阴影(long shadow)
Apr 24 HTML / CSS
详解canvas绘制多张图的排列顺序问题
Jan 21 HTML / CSS
iframe与window.onload如何使用详解
May 07 HTML / CSS
浅析图片上传及canvas压缩的流程
Jun 10 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
Aug 10 HTML / CSS
css3 filter属性的使用简介
Mar 31 HTML / CSS
html+css 实现简易导航栏功能
Apr 07 HTML / CSS
Html5同时支持多端sdk的小技巧
Nov 17 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实现的通用图片处理类
2015/03/24 PHP
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
Seajs的学习笔记
2014/03/04 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
js实现全选反选不选功能代码详解
2019/04/24 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
python爬取youtube视频的示例代码
2021/03/03 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
求职推荐信
2013/10/28 职场文书
幼教个人求职信范文
2013/12/02 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
比赛口号大全
2014/06/10 职场文书
花坛标语大全
2014/06/30 职场文书
人力资源职位说明书
2014/07/29 职场文书
西游降魔篇观后感
2015/06/15 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python