使用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实现信纸/同学录效果的示例代码
Dec 11 HTML / CSS
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
Apr 16 HTML / CSS
CSS3 中的@keyframes介绍
Sep 02 HTML / CSS
非常漂亮的CSS3百叶窗焦点图动画
Feb 24 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
Mar 19 HTML / CSS
HTML5和以前HTML4的区别整理
Oct 20 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
Feb 19 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
Jan 09 HTML / CSS
浅析HTML5中的download属性使用
Mar 13 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
Nov 26 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
Jan 19 HTML / CSS
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
Aug 07 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
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
更新修改后的Python模块方法
2019/03/03 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
python输入中文的实例方法
2020/09/14 Python
通过实例解析python and和or使用方法
2020/11/14 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
绩效管理实施方案
2014/03/19 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
趣味运动会开幕词
2015/01/28 职场文书
北大自主招生自荐信
2015/03/04 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android