网络编程
位置:首页>> 网络编程>> JavaScript>> HTML5 JS压缩图片并获取图片BASE64编码上传

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

作者:aC#Coder  发布时间:2024-04-17 10:25:44 

标签:HTML5,JS,压缩,上传

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

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com