我有一个用户头像图片的字节数组。它表示为键入的Unit8Array()
const imageBytes = new Unit8Array(...);
现在我需要检查图像大小以设置一些限制以防止用户放置大量图像,但我无法想出如何计算图像大小的想法。
我该如何编写这个函数?我需要获取以 MB 为单位的图像大小
const getImageSizeInMB = unit8Array => { ... };
您已经说过数组包含图像数据,因此您已经知道图像数据的大小:它是数组的大小。既然它是一个Uint8Array
, its length
告诉您它包含多少个 8 位字节。要获得以兆字节为单位的大小,请将该数字除以 1024² (1,048,576) 或 1000² (1,000,000),具体取决于您的意思megabyte https://en.wikipedia.org/wiki/Megabyte在许多人经常使用它的意义上(1024²),或者在技术上更准确的每 SI 术语中(其中“兆”具体表示一百万 [1000²])。 (如果使用“兆字节”表示“一百万”,则 1024² 的术语是“mebibyte https://en.wikipedia.org/wiki/Binary_prefix.")
const sizeInMB = uint8Array.length / 1_048_576;
// or
const sizeInMB = uint8Array.length / 1_000_000;
如果数据位于Uint16Array
or Uint32Array
或其他包含大于 8 位字节的元素的数组类型,您可以使用byteLength
财产:
const sizeInMB = theArray.byteLength / 1_048_576;
// or
const sizeInMB = theArray.byteLength / 1_000_000;
(没有理由你不能用你的Uint8Array
同样,为了稳健性;在Uint8Array
and Int8Array
, length
and byteLength
返回相同的值。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)