使用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 相关文章推荐
CSS3教程(2):网页边框半径和网页圆角
Apr 02 HTML / CSS
css3新单位vw、vh的使用教程
Mar 23 HTML / CSS
HTML5 b和i标记将被赋予真正的语义
Jul 16 HTML / CSS
HTML5 本地存储和内容按需加载的思路和方法
Apr 07 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
Jan 31 HTML / CSS
微信浏览器取消缓存的方法
Mar 28 HTML / CSS
HTML5 Canvas的常用线条属性值总结
Mar 17 HTML / CSS
【HTML5】Canvas绘制简单图片教程
May 13 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
Jul 07 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
Dec 28 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
Mar 20 HTML / CSS
Canvas globalCompositeOperation
Dec 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代码实现表单数据验证类
2015/07/28 PHP
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
python正则表达式面试题解答
2020/04/28 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
车间操作工岗位职责
2013/12/19 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
2015年领班工作总结
2015/04/29 职场文书
亮剑观后感600字
2015/06/05 职场文书
小学运动会入场口号
2015/12/24 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis
MySQL GTID复制的具体使用
2022/05/20 MySQL