html5图片编码,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(''%20+%20model.Path%20+%20'');

})

}, 'json');

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值