java 图片压缩 base64,canvas压缩图片转换成base64格式输出文件流

昨天研究了一下canvas压缩图片的方法,上传上来给大家分享一下

// drawimage三种调用方法

// ctx.drawImage(Image,dx,dy);

// ctx.drawImage(Image,dx,dy,dWidth,dHeight);

// ctx.drawImage(Image,sx,sy,sWidth,sHeight,dx,dy,dWidth,dHeight);

//images图片元素,出来预判还支持其他三种格式,分别是htmlvideoElement htmlcanvasElement imagebitmap

//todataurl是canvas画布元素的方法,放回指定的图片格式的data url,也就是base64编码串

//todataurl方法最多接受两个参数,并且这两个参数都是可选的:

//type图片格式.支持3种方式,分别是image/jpeg images/png image/webp,默认是image.png

var canvas = document.getElementById('canvas');

var source = document.getElementsByClassName('source');

var preview = document.getElementsByClassName('preview');

canvas.style.display = "none";

window.onload = function() {

//多张图片循环便利压缩

for(var i = 0; i < preview.length; i++) {

var width = source[i].width;

var height = source[i].height;

var context = canvas.getContext('2d');

//sx要绘制到canvas画布的源图片区域(矩形)在x轴上偏移量

var sx = 0;

//sy要绘制到canvas画布的源图片区域(矩形)在y轴上偏移量

var sy = 0;

//swidth要绘制到canvas画布中的源图片区域的宽度,如果没有制定这个值,宽度则是sx到图片最右边的距离

var sWidth = width;

//sHeight要绘制到画布中的源图片区域的宽度,如果没有制定这个值,高度则是sy到图片最下边的距离

var sHeight = height;

//dx源图片左上角在canvas画布上x轴上偏移量

var dx = 0;

//dy源图片左上角在画布y轴上的偏移量

var dy = 0;

//dwidth绘制图片的canvas画布宽度

//dHeight绘制图片的画布高度

var dWidth = width;

var dHeight = height;

var quality = 0.2;

canvas.width = width;

canvas.height = height;

context.drawImage(source[i], sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);

var dataUrl = canvas.toDataURL('image/jpeg', quality);

preview[i].src = dataUrl;

}

// console.info(dataUrl);

};

//遍历原图

for(var i = 0; i < source.length; i++) {

source[i].src = 'img/' + (i + 1) + '.jpg';

}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值