base64 压缩图片

Posted super-scarlett

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64 压缩图片相关的知识,希望对你有一定的参考价值。

//图片处理

afterimg(err, photos) {

var _this = this;

if(err && err != null && err != ‘‘) {

return ;

}

 

var src = ‘data:image/jpeg;base64,‘ + photos;

var inputData = {

fileName: ["upload", ‘_‘, new Date().getTime(), ‘_‘, Math.floor(Math.random() * 1000000), ‘.png‘].join(‘‘), // 文件全名,包括格式

fileContent: src

};

 

var width = parseInt(document.documentElement.clientWidth) * 0.8;

_this.dealImage(src, {

width: width

}, inputData, _this.uploadimage);

},

//压缩图片

dealImage(path, obj, data, cb) {

var img = new Image();

img.src = path;

img.onload = function() {

var that = this;

// 默认按比例压缩

var w = that.width,

h = that.height,

scale = w / h;

w = obj.width || w;

h = obj.height || (w / scale);

var quality = 0.75; // 默认图片质量为0.7

//生成canvas

var canvas = document.createElement(‘canvas‘);

var ctx = canvas.getContext(‘2d‘);

// 创建属性节点

var anw = document.createAttribute("width");

anw.nodeValue = w;

var anh = document.createAttribute("height");

anh.nodeValue = h;

canvas.setAttributeNode(anw);

canvas.setAttributeNode(anh);

ctx.drawImage(that, 0, 0, w, h);

// 图像质量

if(obj.quality && obj.quality <= 1 && obj.quality > 0) {

quality = obj.quality;

}

var base64 = canvas.toDataURL(‘image/jpeg‘, quality).replace(‘data:image/jpeg;base64,‘, ‘‘);

// 回调函数返回base64的值

data.fileContent = base64;

typeof cb == ‘function‘ && cb(data);

 

}

},

 

//上传图片

uploadimage(inputData) {}

以上是关于base64 压缩图片的主要内容,如果未能解决你的问题,请参考以下文章

uni-app图片压缩转base64位 利用递归来实现多张图片压缩

图片采用base64压缩,可以以字符串的形式传送base64给服务端转存为图片

通过 Thumbnails 压缩图片后转 base64

js压缩上传图片base64长度

Jav文件压缩-InputStream转化为base64-Base64解码并生成图片

JS图片base64压缩