使用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制作3D样式按钮实现代码
Mar 18 HTML / CSS
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
Nov 05 HTML / CSS
结合CSS3的布局新特征谈谈常见布局方法
Jan 22 HTML / CSS
CSS3动画:5种预载动画效果实例
Apr 05 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
Jul 05 HTML / CSS
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
Apr 24 HTML / CSS
html5使用canvas实现弹幕功能示例
Sep 11 HTML / CSS
css display table 自适应高度、宽度问题的解决
May 07 HTML / CSS
不要在HTML中滥用div
May 08 HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
Jun 21 HTML / CSS
详解CSS中的特指度和层叠问题
Jul 15 HTML / CSS
使用canvas仿Echarts实现金字塔图的实例代码
Nov 11 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
在线增减.htpasswd内的用户
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
深入PHP数据加密详解
2013/06/18 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
基于jquery的滚动新闻列表
2010/06/19 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
angularJS 入门基础
2015/02/09 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
python daemon守护进程实现
2016/08/27 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
Python 实现微信自动回复的方法
2020/09/11 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
大学生物业管理求职信
2013/10/24 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
人力资源管理求职信
2014/08/07 职场文书
党的生日活动方案
2014/08/15 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
超市主管竞聘书
2015/09/15 职场文书