html base64码压缩,移动端前端压缩上传图片(canvas与base64位编码)

注释已写在文件里,可直接复制

压缩前的尺寸:

f1626959f7b5e753e3282c5fdf186388.png

压缩后的尺寸

c1c4f8b5a38f8e418042d0f0283e656b.png

直接上代码

function change(self){

// data为最后要传送到后台的数据

var data = {};

var press =function() {

// 转码为base64位

var Pic = document.getElementById('input_canvas').toDataURL("image/png"),

// 去掉头部

pics = Pic.replace(/^data:image\/(png|jpg);base64,/, "");

// 图片数据放入data

data.img = pics;

}

var getStyle =function(obj, attr) {

// 用于获取图片宽高的样式兼容

if (obj.currentStyle) {

return obj.currentStyle[attr];

} else {

return getComputedStyle(obj, false)[attr];

}

}

// 新建canvas画布

var Cnv = document.getElementById('input_canvas');

var Cntx = Cnv.getContext('2d');

// 新建图片

var imgss = new Image();

// 获取上传的图片

var tmpFile = self.files[0];

// 新建文件

var reader = new FileReader();

// 上传的文件转码

reader.readAsDataURL(tmpFile);

reader.onload = function (e) {

var url = e.target.result;

imgss.src = url;

imgss.onload = function () {

//宽高比例

var m = imgss.width / imgss.height,

n = parseFloat(getStyle(imgss, 'height'));

Cnv.height = 100; //该值影响缩放后图片的大小

Cnv.width = Cnv.height * m;

//绘制画布(图片缩放的过程)

Cntx.drawImage(imgss, 0, 0, Cnv.width, Cnv.height);

};

};

setTimeout(function () {

press();//引入function,处理数据

}, 50);

console.log(data) //验证

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值