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

网友投稿 474 2023-06-04


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 http://= 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';

http://}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序 出现47001 data format error原因解决办法
下一篇:Java TokenProcessor令牌校验工具类
相关文章

 发表评论

暂时没有评论,来抢沙发吧~