python3 解析 base64 數據


在閱讀 glTF-Tutorial 教程時遇到了解析 base64 數據的問題。

原始 base64 數據為AAABAAIAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAA=。包含兩個數據:

數據1:數據起始位置為 0,長度為 6,數據類型為 UNSIGNED_SHORT;數據2:數據起始位置為 8,長度為 36,數據類型為 FLOAT

解析代碼如下:

import base64
import struct

origin_data = b'AAABAAIAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAA='
decoded_data = base64.b64decode(origin_data)

data1 = decoded_data[:6]
format1 = 'H' * int(len(data1)/struct.calcsize('H'))
output_data1 = struct.unpack(format1, data1)
# output_data1 = (0, 1, 2)

data2 = decoded_data[8:]
format2 = 'f' * int(len(data2)/struct.calcsize('f'))
output_data2 = struct.unpack(format2, data2)
# output_data2 = (0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0)

參考資料
base64 — Python 3.7.0 documentation
struct — Python 3.7.0 documentation


免責聲明!

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



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