HTML5 JS压缩图片并获取图片BASE64编码上传


Posted in Javascript onNovember 16, 2020

本文实例为大家分享了HTML5 JS压缩图片,并获取图片BASE64编码上传的方法,供大家参考,具体内容如下

基本过程

1) 调用 FileReader 的 reader.readAsDataURL(img); 方法, 在其onload事件中, 将用户选择的图片读入 Image对象.

2) 在image对象的 onload 事件中, 通过 canvas 的 canvas.getContext('2d') 的 drawImage 方法, 将Image 改变大小绘制到canvas上.

3) 通过 canvas.toDataURL("image/jpeg", 0.1); 方法, 将图片变成base64字符串, 传入服务端.

var vueImg = new Vue({
  el: "#divCarImages",
  data: { model: { carId: '@carId', imageTitle:'',img64:'' }, images: [] },
  methods: {
   imageHandle: function () {
    var fup = $("#fileImg")[0];

    var img = fup.files[0];

    var image = new Image();
    var canvas = $("#canvas")[0];//document.createElement("canvas");
    var ctx = canvas.getContext('2d');

    image.onload = function () {
     var w = image.naturalWidth,
      h = image.naturalHeight;

     var toSize = 400;
     canvas.width = toSize;
     canvas.height = toSize;

     var w2 = toSize, h2 = toSize;
     if (w > h) {
      h2 = h / w * toSize;
     } else {
      w2 = w / h * toSize;
     }

     ctx.drawImage(image, 0, 0, w, h, 0, 0, w2, h2);
      
    }

    // 判断是否图片
    if (!img) {
     return;
    }

    // 判断图片格式
    if (!(img.type.indexOf('image') == 0 && img.type && /\.(?:jpg|png|gif)$/.test(img.name))) {
     alert('图片只能是jpg,gif,png');
     return;
    }

    var reader = new FileReader();

    reader.onload = function (e) { // reader onload start
     var url = reader.result;
     image.src = url;

    } // reader onload end

    reader.readAsDataURL(img);
   }

  }
 });
function uploadImg() {
  var canvas = $("#canvas")[0];
  vueImg.model.img64 = canvas.toDataURL("image/jpeg", 0.1);
  //$("#testMsg").html(imgData.length);
      
  // ajax 上传图片
  $.post("@Url.Content("~/AliOss/SaveCarImage")", vueImg.model , function (ret) {

   parseAjaxData(data, function (model) {
    console.log(model.Path);
    alert(model.Path);
    $('#showimg').html('<img src="' + model.Path + '">');
   })  
  }, 'json');
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - ComboBox组合框
Oct 07 Javascript
js 判断一个元素是否在页面中存在
Dec 27 Javascript
jQuery使用post方法提交数据实例
Mar 25 Javascript
js实现网页图片延时加载 提升网页打开速度
Jan 26 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
May 25 Javascript
jQuery对table表格进行增删改查
Dec 22 Javascript
PHP自动加载autoload和命名空间的应用小结
Dec 01 Javascript
浅谈Vue网络请求之interceptors实际应用
Feb 28 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
May 06 Javascript
vue+web端仿微信网页版聊天室功能
Apr 30 Javascript
Vue实现点击显示不同图片的效果
Aug 10 Javascript
p5.js实现动态图形临摹
Oct 23 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 #Javascript
xcode中获取js文件的路径方法(推荐)
Nov 05 #Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
Nov 05 #Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 #Javascript
JavaScript中绑定事件的三种方式及去除绑定
Nov 05 #Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 #Javascript
Javascript 普通函数和构造函数的区别
Nov 05 #Javascript
You might like
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
PHP实现获取FLV文件的时间
2015/02/10 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
JavaScript 参考教程
2006/12/29 Javascript
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
python基本语法练习实例
2017/09/19 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
详解python配置虚拟环境
2019/04/08 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
中医专业应届生求职信
2013/11/17 职场文书
中英文求职信范文
2014/01/27 职场文书
促销活动方案模板
2014/02/24 职场文书
应届毕业生自荐书
2014/06/18 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
离职信范文
2015/06/23 职场文书
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs
从原生JavaScript到React深入理解
2022/07/23 Javascript