使用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教程(9):设置RGB颜色
Apr 02 HTML / CSS
CSS3 开发工具收集
Apr 17 HTML / CSS
浅谈CSS3鼠标移入图片动态提示效果(transform)
Nov 06 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
Mar 19 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
Oct 17 HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 HTML / CSS
html5开发三八女王节表白神器
Mar 07 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
Nov 26 HTML / CSS
Canvas波浪花环的示例代码
Aug 21 HTML / CSS
CSS实现章节添加自增序号的方法
Jun 23 HTML / CSS
HTML+CSS实现导航条下拉菜单的示例代码
Aug 02 HTML / CSS
什么是css原子化,有什么用?
Apr 24 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编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
8个出色的WordPress SEO插件收集
2011/02/26 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
Python时间获取及转换知识汇总
2017/01/11 Python
Python属性和内建属性实例解析
2020/01/14 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
关于迟到的检讨书
2014/01/26 职场文书
总经理司机职责
2014/02/02 职场文书
商铺门前三包责任书
2014/07/25 职场文书
争先创优活动总结
2014/08/27 职场文书
小学数学国培研修日志
2015/11/13 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书