有的时候图片会黑一点有的时候会全黑,我看代码没看出哪里出了毛病希望大神帮我解答
//---------------------------身份证上传--------------------------
//document.getElementById('img').addEventListener('change', function() {
$('#img_wrapper').on('change','.input_img',function(){
var reader = new FileReader();
var that = this;
var nodeId = $(this).parent().parent().attr('id');
reader.onload = function (e) {
console.log('图片已生成');
//console.log(e.target.result);
compress(e.target.result, fileSize,nodeId);
compress_show(e.target.result, fileSize,nodeId,that);
};
reader.readAsDataURL(this.files[0]);
var fileSize = Math.round(this.files[0].size / 1024 / 1024); //以M为单位
});
//图片压缩
function compress(res, fileSize,nodeId) { //res代表上传的图片,fileSize大小图片的大小
console.log('图片开始压缩');
var img = new Image(),
maxW = $("#sfzm").width() * 3, //设置最大宽度
maxH = $("#sfzm").height() * 3; //设置最大高度
console.log(9999);
img.onload = function() {
var cvs = document.createElement('canvas'),
ctx = cvs.getContext('2d');
if(img.width > maxW) {
img.height *= maxW / img.width;
img.width = maxW;
} else {
img.width *= maxH / img.height;
img.height = maxH;
}
cvs.width = img.width;
cvs.height = img.height;
ctx.clearRect(0, 0, cvs.width, cvs.height);
ctx.drawImage(img, 0, 0, img.width, img.height);
var compressRate = getCompressRate(1, fileSize);
var dataUrl = cvs.toDataURL('image/jpeg', compressRate).replace('data:image/jpeg;base64,','');
selectPicture(nodeId,dataUrl);
console.log(cvs);
}
img.src = res;
}
//压缩比率
function getCompressRate(allowMaxSize, fileSize) { //计算压缩比率,size单位为MB
var compressRate = 1;
if(fileSize / allowMaxSize > 4) {
compressRate = 0.5;
} else if(fileSize / allowMaxSize > 3) {
compressRate = 0.6;
} else if(fileSize / allowMaxSize > 2) {
compressRate = 0.7;
} else if(fileSize > allowMaxSize) {
compressRate = 0.8;
} else {
compressRate = 0.9;
}
console.log(compressRate);
return compressRate;
}
请问你遇到的问题解决了没有?是什么原因呢?