|
@@ -165,8 +165,8 @@ export default {
|
|
|
// 文件大于1MB时进行压缩
|
|
|
this.compressImage(file).then((compressedFile) => {
|
|
|
loadingInstance.close();
|
|
|
- if (compressedFile.size / 1024 > 500) {
|
|
|
- this.$message.error('图片压缩后仍大于500KB');
|
|
|
+ if (compressedFile.size / 1024 > 1000) {
|
|
|
+ this.$message.error('图片压缩后仍大于1000KB');
|
|
|
reject();
|
|
|
} else {
|
|
|
// this.$message.success(`图片压缩成功,最终质量为: ${this.finalQuality.toFixed(2)}`);
|
|
@@ -195,7 +195,7 @@ export default {
|
|
|
// return false;
|
|
|
// }
|
|
|
// }
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
compressImage(file) {
|
|
|
return new Promise((resolve, reject) => {
|
|
@@ -215,16 +215,16 @@ export default {
|
|
|
|
|
|
let quality = 1; // 初始压缩质量
|
|
|
let dataURL = canvas.toDataURL('image/jpeg', quality);
|
|
|
-
|
|
|
+
|
|
|
// 逐步压缩,直到图片大小小于500KB并且压缩质量不再降低
|
|
|
while (dataURL.length / 1024 > 500 && quality > 0.1) {
|
|
|
quality -= 0.01;
|
|
|
dataURL = canvas.toDataURL('image/jpeg', quality);
|
|
|
}
|
|
|
this.finalQuality = quality; // 存储最终的压缩质量
|
|
|
-
|
|
|
- if (dataURL.length / 1024 > 500) {
|
|
|
- reject(new Error('压缩后图片仍然大于500KB'));
|
|
|
+
|
|
|
+ if (dataURL.length / 1024 > 1000) {
|
|
|
+ reject(new Error('压缩后图片仍然大于1000KB'));
|
|
|
return;
|
|
|
}
|
|
|
|