【问题标题】:Get Image size (not dimension) inside image tag using javascript使用javascript获取图像标签内的图像大小(不是尺寸)
【发布时间】:2022-02-04 21:32:15
【问题描述】:

我有一个<img> 标记,其中填充了动态src 属性。我想在使用 javascript/jQuery 加载图像时显示图像大小(以字节为单位)。

我尝试使用以下内容。但是,它在所有 3 个属性中都返回零。

$('#img').on('load',
                function() {
                    var imgUrl = $(this).attr("src");
                    var imgPerf = performance.getEntriesByName(imgUrl)[0];
                    console.log(Math.round(imgPerf.decodedBodySize)); // returns 0
                    console.log(Math.round(imgPerf.encodedBodySize)); // returns 0
                    console.log(Math.round(imgPerf.transferSize)); // returns 0
                });

还有其他可能的方法来获取图像大小值吗?

仅供参考,图片是从不同的域加载的。

【问题讨论】:

  • “图像大小”的问题在于它取决于压缩,所以 file 大小和 image 大小并不总是同样的事情。

标签: javascript html jquery image filesize


【解决方案1】:

如果你有图片网址,你可以试试这个:

const fileImg = await fetch(URL_TO_IMG).then(r => r.blob());

这将通过 HTTP 获取资源,然后将完整的二进制文件作为 blob 对象返回,然后您可以访问其属性,包括其大小(以字节为单位):

fileImg.size

【讨论】:

  • 您也可以使用它只加载一次图像(而不是使用src= 让浏览器加载它然后重新加载它以获取大小) - 请参阅:stackoverflow.com/a/44069294/2181514跨度>
猜你喜欢
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
相关资源
最近更新 更多