如何获取表示为 Uint8Array 的图像的大小?
How do I get the size of an image represented as a Unit8Array?
我有一个用户头像图片的字节数组。它表示为类型 Unit8Array()
const imageBytes = new Unit8Array(...);
现在我需要检查图片大小以设置一些限制以防止用户放置大量图片,但我想不出如何计算图片大小。
这个函数怎么写?我需要以 MB
为单位获取图像大小
const getImageSizeInMB = unit8Array => { ... };
你说数组包含图像数据,所以你已经知道图像数据的大小:它是数组的大小。因为它是一个 Uint8Array
,它的 length
告诉你它包含多少个 8 位字节。要获得以兆字节为单位的大小,请将该数字除以 1024² (1,048,576) 或 1000² (1,000,000),具体取决于您的意思 megabyte in the sense many people often use it (1024²) or in the more technically-accurate-per-SI-terminology (where "mega" specifically means one million [1000²]). (If using "megabyte" to mean "one million," the term for 1024² is "mebibyte.")
const sizeInMB = uint8Array.length / 1_048_576;
// or
const sizeInMB = uint8Array.length / 1_000_000;
如果数据位于 Uint16Array
或 Uint32Array
或其他包含大于 8 位字节的元素的数组类型中,您将使用 byteLength
属性:
const sizeInMB = theArray.byteLength / 1_048_576;
// or
const sizeInMB = theArray.byteLength / 1_000_000;
(为了稳健,您也没有理由不能用 Uint8Array
做到这一点;在 Uint8Array
和 Int8Array
、length
和 byteLength
return 相同的值。)
我有一个用户头像图片的字节数组。它表示为类型 Unit8Array()
const imageBytes = new Unit8Array(...);
现在我需要检查图片大小以设置一些限制以防止用户放置大量图片,但我想不出如何计算图片大小。
这个函数怎么写?我需要以 MB
为单位获取图像大小const getImageSizeInMB = unit8Array => { ... };
你说数组包含图像数据,所以你已经知道图像数据的大小:它是数组的大小。因为它是一个 Uint8Array
,它的 length
告诉你它包含多少个 8 位字节。要获得以兆字节为单位的大小,请将该数字除以 1024² (1,048,576) 或 1000² (1,000,000),具体取决于您的意思 megabyte in the sense many people often use it (1024²) or in the more technically-accurate-per-SI-terminology (where "mega" specifically means one million [1000²]). (If using "megabyte" to mean "one million," the term for 1024² is "mebibyte.")
const sizeInMB = uint8Array.length / 1_048_576;
// or
const sizeInMB = uint8Array.length / 1_000_000;
如果数据位于 Uint16Array
或 Uint32Array
或其他包含大于 8 位字节的元素的数组类型中,您将使用 byteLength
属性:
const sizeInMB = theArray.byteLength / 1_048_576;
// or
const sizeInMB = theArray.byteLength / 1_000_000;
(为了稳健,您也没有理由不能用 Uint8Array
做到这一点;在 Uint8Array
和 Int8Array
、length
和 byteLength
return 相同的值。)