JavaScript-从HTML img src中获取以字节为单位的大小
JavaScript - Get size in bytes from HTML img src
我想知道如何用HTML/JS从"img"标记的"src"中获得字节大小。
<img src="https://ofbuckleyandbeatles.files.wordpress.com/2011/01/testpattern.gif"/>
在上面的例子中,我基本上想知道"testpattern.gif"有多大(以字节为单位)。
提前谢谢。
好吧,这是2017年,您现在可以使用Resource Timing API在javascript:中提取图像的transferSize、encodedBodySize、decodedBodySize
以下是访问页面上所有img的大小信息的代码(请参阅下面的所有警告):
var imgElems = document.getElementsByTagName('img');
for ( var i=0, len = imgElems.length; i < len; i++ )
{
var url = imgElems[i].src || imgElems[i].href;
if (url && url.length > 0)
{
var iTime = performance.getEntriesByName(url)[0];
console.log(iTime.transferSize); //or encodedBodySize, decodedBodySize
}
}
- 确保在文档加载后运行以上代码(以确保图像已加载)
- 由于CORS,来自不同域的图像的定时信息可能不可用(除非不同域的服务器设置了timing Allow Origin HTTP响应标头)
- 请确保资源定时api可用于您的目标浏览器:http://caniuse.com/#feat=resource-定时
- 确保掌握transferSize、encodeBodySize和decodeBodySze之间的区别,以确保使用正确的大小属性
遗憾的是,由于返回的值与图像实际大小不匹配,因此所提出的解决方案不起作用。
假设您使用的是URL,您可以执行以下操作:
const fileImg = await fetch(URL_TO_IMG).then(r => r.blob());
这将通过HTTP获取资源,然后以blob对象的形式返回完整的二进制文件,然后您可以访问其属性,包括以字节为单位的大小:
fileImg.size
相关文章:
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 如何将datetime转换为以毫秒为单位的epoch时间javascript
- 每小时倒计时一次,但以30分钟为单位
- 以天为单位计算年龄-Javascript
- 是否可以使用javascript获取以em为单位的窗口宽度
- 获取以屏幕像素为单位的旋转SVG元素的边界
- GridStack项的高度和宽度(以像素为单位)
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- JQPlot's仪表-以针为单位显示值
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- 从Javascript到C#获取正确的日期(以毫秒为单位)
- 远距离变换元素的宽度/高度(以像素为单位)
- JavaScript-从HTML img src中获取以字节为单位的大小
- NodeJs 获取变量的大小(以字节为单位)
- 以字节为单位的base64长度是多少
- Range报头是以字节为单位的压缩或未压缩字节的大小
- 计算ImageData对象的大小(以[字节]为单位)
- 以千字节为单位检测canvas . todatauri的大小
- 获取客户端的文件大小(以字节为单位)
- 在上传之前获取图像大小(以字节为单位)