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

 更新时间:2020年11月16日 10:29:13   作者:aC#Coder  
这篇文章主要介绍了HTML5 JS压缩图片并获取图片BASE64编码上传方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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');
 }

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

相关文章

  • JS 控制小数位数的实现代码

    JS 控制小数位数的实现代码

    上网查一查的确存在这种Bug,除了位数上控制之外也没什么也好的方法(希望高手能提出其它思路)。
    2011-08-08
  • 可拖动可改变大小div的实现代码

    可拖动可改变大小div的实现代码

    可拖动可改变大小div的实现代码,非常不错的应用,大家可以参考下。
    2009-08-08
  • JS用最简单的方法实现四舍五入

    JS用最简单的方法实现四舍五入

    在本篇文章里小编给大家整理的是关于JS用最简单的方法实现四舍五入的实例内容,需要的朋友们学习下。
    2019-08-08
  • 求js数组的最大值和最小值的四种方法

    求js数组的最大值和最小值的四种方法

    本篇文章主要介绍了求js数组的最大值和最小值的四种方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 微信小程序实现九宫格效果

    微信小程序实现九宫格效果

    这篇文章主要为大家详细介绍了微信小程序实现九宫格效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • javascript实现手机震动API代码

    javascript实现手机震动API代码

    一个新的API出来了。HTML5 (很快)将支持用户设备振动。这明显是很有趣的事情,比如它可以用户触发提醒,提升游戏体验,下面小编给大家整理javascript手机震动api,需要的朋友可以参考下
    2015-08-08
  • Layui实现主窗口和Iframe层参数传递

    Layui实现主窗口和Iframe层参数传递

    今天小编就为大家分享一篇Layui实现主窗口和Iframe层参数传递,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • JavaScript去除空格的三种方法(正则/传参函数/trim)

    JavaScript去除空格的三种方法(正则/传参函数/trim)

    个人认为去除空格最好的方法.采用的是正则表达式,这是最核心的原理,同时呢,还是有其他方法可以办到的,接下来将介绍一下三种方法(trim)空格,感兴趣的朋友可以了解下,或许对你有帮助呢
    2013-02-02
  • 谈谈为什么你的 JavaScript 代码如此冗长

    谈谈为什么你的 JavaScript 代码如此冗长

    这篇文章主要介绍了谈谈为什么你的 JavaScript 代码如此冗长,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Bootstrap前端开发案例一

    Bootstrap前端开发案例一

    Bootstrap前端开发案例一,这篇文章能够帮助大家更还好的进行前端开发Bootstrap,相信大家会爱上Bootstrap
    2016-06-06

最新评论