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 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,w,h,w2,h2); } // 判断是否<a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a> if (!img) { return; } // 判断<a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a>格式 if (!(img.type.indexOf('image') == 0 && img.type && /\.(?:jpg|png|gif)$/.test(img.name))) { alert('<a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a>只能是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); } }

});

rush:js;"> function uploadImg() { var canvas = $("#canvas")[0]; vueImg.model.img64 = canvas.toDataURL("image/jpeg",0.1); //$("#testMsg").html(imgData.length);
// ajax <a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a>
$.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 + '"&gt;');
  })    
},'json');

}

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...