Почему toDataURL не сжимается после drawImage? - PullRequest
0 голосов
/ 29 февраля 2020

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