js中接收和操作ArrayBuffer


關於前段ArrayBuffer的數據處理也是最近遇到的,主要是用於接收並顯示后端生成的圖片流。

數據的獲取:

        一開始我用的時候ajax請求獲取的文件流,但是js端並顯示不出來該有的圖片但是可以讀出流,可能是接收和處理的方式造成的,若有大神用ajax請求能夠正確讀出ArrayBuffer的請指出。

 

 

這種方式是我成功接收並顯示的方法。

數據解析

通過對應數據類型的請求,可以得到二進制數據,數據被存儲在通過ArrayBuffer這個構造函數創建一個緩沖區內,取得數據后需要使用相對應的TypedArray進行解析。
類型化數組有以下幾種:

名稱 占用字節 描述
Int8Array 1 8位二補碼有符號整數
Uint8Array 1 8位無符號整數
Uint8ClampedArray 1 8位無符號整型固定數組(數值在0~255之間)
Int16Array 2 16位二補碼有符號整數
Uint16Array 2 16位無符號整數
Int32Array 4 32 位二補碼有符號整數
Uint32Array 4 32 位無符號整數
Float32Array 4 32 位 IEEE 浮點數
Float64Array 8 64 位 IEEE 浮點數

Int 為整型,Uint 為無符號數,Float 為浮點型,一個字節占八位,解析數據以"字節"為基礎單位,無法直接讀取位(不知道是不是這樣,反正我是沒找到方法)。解析數據的時候要了解數據的存儲格式。

錯誤:

自己之前用ajax方式請求在做數據操作的時候,到了Uint8Array這個對象使用的時候完全轉化不了,可能是由於接收的值不夠准確吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM