我正在尝试本地压缩从用户PC上传的图像,然后再将其上传到Firebase存储。除了实际的压缩以外,其他所有功能均有效。我尝试使用
运行代码 var data = canvas.toDataURL("image/jpg", 0.10);
和
var data = canvas.toDataURL("image/jpg");
查看是否会有任何不同,但是文件大小相同。这是完整的代码:
$('#coverPageInput').change(function() {
// Get file
var imgFile = document.getElementById('coverPageInput');
var img = imgFile.files[0];
var image = new Image();
var canvas = document.createElement('canvas');
var ctx = canvas.getContext("2d");
image.onload = function() {
// Draw new image
ctx.canvas.width = image.width;
ctx.canvas.height = image.height;
ctx.drawImage(image, 0, 0);
var data = canvas.toDataURL("image/jpg", 0.10);
// Get file size
var dataWithoutMime = data.split(",")[1];
var imgSize = window.atob(dataWithoutMime).length;
console.log(imgSize);
// Render image
var result_image_obj = new Image();
result_image_obj.onload = function() {
document.body.appendChild(result_image_obj);
}
result_image_obj.src = data;
}
image.src = window.URL.createObjectURL(img);
});