簡體   English   中英

如何獲取表示為 Unit8Array 的圖像的大小?

[英]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;

如果數據位於Uint16ArrayUint32Array或其他包含大於 8 位字節的元素的數組類型中,則可以使用byteLength屬性:

const sizeInMB = theArray.byteLength / 1_048_576;
// or
const sizeInMB = theArray.byteLength / 1_000_000;

(沒有理由你也不能用你的Uint8Array來做這件事,為了健壯性;在Uint8ArrayInt8Array上, lengthbyteLength返回相同的值。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM