Я пытаюсь локально сжать изображение, загруженное пользователями p c перед загрузкой в хранилище 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);
});