使用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弹性盒模型开发笔记(三)
Apr 26 HTML / CSS
深入浅出CSS3 background-clip,background-origin和border-image教程
Jan 27 HTML / CSS
让IE支持CSS3的不完全兼容方案
Sep 19 HTML / CSS
HTML5 Canvas绘制文本及图片的基础教程
Mar 14 HTML / CSS
canvas实现飞机打怪兽射击小游戏的示例代码
Jul 09 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
Aug 06 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
Apr 23 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
Jun 25 HTML / CSS
HTML5有哪些新特征
Dec 01 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
Feb 18 HTML / CSS
HTML5微信播放全屏问题的解决方法
Mar 09 HTML / CSS
使用phonegap获取位置信息的实现方法
Mar 31 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 mssql 日期出现中文字符的解决方法
2009/03/10 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
HTML5 与 XHTML2
2008/10/17 HTML / CSS
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
介绍一下gcc特性
2012/01/20 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
六一亲子活动总结
2014/07/01 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
中秋联欢会主持词
2015/07/04 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫
MySQL批量更新不同表中的数据
2022/05/11 MySQL
Hive HQL支持2种查询语句风格
2022/06/25 数据库