/**
* 获取图片的base64
* src-图片路径
* quality-压缩质量 0~1
* callback-回调函数
* */
var getBase64Image = function (src, quality, callback) {
quality = quality || 1;
var img = new Image();
img.onload = function () {
var clientWidth = document.documentElement.clientWidth;
var scale = Math.round(window.devicePixelRatio || 1);
var canvas = document.createElement('canvas');
var imgWidth = this.width;
var imgHeight = this.height;
var width = imgWidth;
var height = imgHeight;
if (width > clientWidth * scale) {
width = clientWidth * scale;
height = width * imgHeight / imgWidth;
}
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext('2d');
var ext = this.src.substring(this.src.lastIndexOf('.') + 1).toLowerCase();
if (quality > 0 && quality < 1) {//压缩只支持jpeg格式压缩,防止png图片压缩后透明区域变黑添加白底
ext = 'jpeg';
ctx.fillStyle = '#fff';
ctx.fillRect(0, 0, width, height);
}
ctx.drawImage(this, 0, 0, width, height);
var dataURL = canvas.toDataURL(ext, quality);
callback && callback({
status: 1,
data: dataURL
});
};
img.src = src;
};
获取图片的base64,支持压缩
最新推荐文章于 2024-07-31 21:12:06 发布