使用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 16 HTML / CSS
CSS3中引入多种自定义字体font-face
Jun 12 HTML / CSS
html5小技巧之通过document.head获取head元素
Jun 04 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
Aug 04 HTML / CSS
HTML5操作WebSQL数据库的实例代码
Aug 26 HTML / CSS
有关HTML5中背景音乐的自动播放功能
Oct 16 HTML / CSS
HTML5 3D书本翻页动画的实现示例
Aug 28 HTML / CSS
基于HTML5+tracking.js实现刷脸支付功能
Apr 16 HTML / CSS
HTML5 背景的显示区域实现
Jul 09 HTML / CSS
HTML5基于flash实现播放RTMP协议视频的示例代码
Dec 04 HTML / CSS
详解flex:1什么意思
Jul 23 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
php allow_url_include的应用和解释
2010/04/22 PHP
php实现文件编码批量转换
2014/03/10 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
Jquery ui css framework
2010/06/28 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
Python中常用的os操作汇总
2020/11/05 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
Ajax的工作原理
2015/12/04 面试题
厂办主管岗位职责范本
2014/02/28 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
学校远程教育工作总结
2015/08/11 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电