[英]How do I get the size of an image represented as a Unit8Array?
我有一個用戶頭像圖片的字節數組。 它表示為類型化Unit8Array()
const imageBytes = new Unit8Array(...);
現在我需要檢查圖像大小以設置一些限制以防止用戶放置大量圖像,但我無法想出如何計算圖像大小的想法。
我該如何寫這個 function? 我需要以 MB 為單位獲取圖像大小
const getImageSizeInMB = unit8Array => { ... };
您已經說過數組包含圖像數據,所以您已經知道圖像數據的大小:它是數組的大小。 由於它是一個Uint8Array
,它的length
告訴你它包含多少個 8 位字節。 要獲得以兆字節為單位的大小,請將該數字除以 1024² (1,048,576) 或 1000² (1,000,000),具體取決於您是指許多人經常使用的兆字節(1024²) 還是在技術上更准確的每 SI 術語 (其中“mega”特指一百萬 [1000²])。 (如果使用“兆字節”來表示“一百萬”,則1024²的術語是“兆字節”。)
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
返回相同的值。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.