如何从画布查找图像文件的大小?

用户名

这是一个调整jpeg大小的js函数image通过功能将原稿image尺寸调整为width x heightimage.sizealert返回undefinedmainCanvas.toDataURL.length调整后的图像文件的大小?如果没有,如何在调整大小后查找图像文件大小?

    function resize(image, width, height) {
      var mainCanvas = document.createElement("canvas");
      mainCanvas.width = width;
      mainCanvas.height = height;
      var ctx = mainCanvas.getContext("2d");
      ctx.drawImage(image, 0, 0, width, height);
      $('#uploaded_file_hidden_file').val(mainCanvas.toDataURL("image/jpeg")); 
      $('#file_size').val(Math.ceil(image.size/1024));
      alert(image.size);
    };
1cgonza

如果按大小表示文件大小(以字节为单位),则图像元素将不会具有的大小属性image.size您需要将画布转换为Blob,然后可以获取尺寸:

 // canvas.toBlob() is not well supported, so here is the polyfill just in case.
 // https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob#Polyfill
 if (!HTMLCanvasElement.prototype.toBlob) {
 Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
  value: function (callback, type, quality) {

    var binStr = atob( this.toDataURL(type, quality).split(',')[1] ),
        len = binStr.length,
        arr = new Uint8Array(len);

    for (var i=0; i<len; i++ ) {
     arr[i] = binStr.charCodeAt(i);
    }

    callback( new Blob( [arr], {type: type || 'image/png'} ) );
  }
 });
}

function resize(image, width, height) {
  var mainCanvas = document.createElement("canvas");
  mainCanvas.width = width;
  mainCanvas.height = height;
  var ctx = mainCanvas.getContext("2d");
  ctx.drawImage(image, 0, 0, width, height);
  $('#uploaded_file_hidden_file').val(mainCanvas.toDataURL("image/jpeg"));

  // Canvas to blob so we can get size.
  mainCanvas.toBlob(function(blob) {
    $('#file_size').val(Math.ceil(blob.size/1024));
    alert(blob.size);
  }, 'image/jpeg', 1);
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Chrome检查元素中查找图像文件大小

来自分类Dev

图像文件大小与面积比

来自分类Dev

如何在Swift中获取图像文件的大小?

来自分类Dev

如何调整ext3图像文件的大小

来自分类Dev

如何将奇异果画布对象另存为图像文件

来自分类Dev

如何将每个图像文件加载到自己的画布元素中

来自分类Dev

上传后图像文件大小增加

来自分类Dev

找出存储的图像文件的大小

来自分类Dev

matplotlib outlinef图像文件的大小

来自分类Dev

调整图像文件的大小laravel 5

来自分类Dev

减少Web的图像文件大小

来自分类Dev

matplotlib outlinef图像文件的大小

来自分类Dev

确定图像文件大小的PHP

来自分类Dev

如何删除图像文件?

来自分类Dev

查找图像文件夹

来自分类Dev

查找已安装ISO的图像文件

来自分类Dev

如何从画布获取图像大小?

来自分类Dev

如何搜索文件夹中最大的图像文件?(分辨率和大小)

来自分类Dev

如何将画布图像“ data:image / jpeg; base64,..”转换为普通图像文件-javascript

来自分类Dev

如何在Appcelerator Titanium项目中组织不同大小(设备)的图像文件

来自分类Dev

如何将使用InkCanvas在画布上完成的工作保存到UWP C#中的图像文件?

来自分类Dev

如何从dataURL创建图像文件?

来自分类Dev

表达+路线+如何显示图像文件

来自分类Dev

如何正确读取图像文件?

来自分类Dev

如何通过http发送图像文件?

来自分类Dev

如何使用Multipart上传图像文件?

来自分类Dev

如何从dataURL创建图像文件并保存?

来自分类Dev

如何使用axios上传图像文件?

来自分类Dev

如何获取图像文件的DPI(PNG)

Related 相关文章

热门标签

归档