问题描述
我一次读取 4 个字节的 bmp 文件,以从 .bmp 文件中收集颜色以创建调色板。当我阅读文件时,我得到 b'\x8b\xc3\**x00J**\x00'
。如果我在十六进制编辑器中打开这个文件,字节串是 b'\x8b\xc3\**x4a**\x00
。现在,当我尝试将它放入 dispalyio.palette
时,该特定字节会破坏程序。我的理解是 Python 自动将字节(具有有效的 ascii 表示形式)解码为 ascii。
最终我只想获取原始字节字符串,一次 4 个字节,而不需要从所述文件进行解码。我的代码如下所示:
palette = displayio.Palette(2)
with open("images/f.bmp","rb") as f:
f.seek(137)
for val in range(0,1):
try:
c_bytes = f.read(4)
#print(c_bytes[0:2])
print(b''.join([c_bytes[3:4],c_bytes[2:3],c_bytes[0:2]]))
palette[0] = b''.join([c_bytes[3:4],c_bytes[1:3],c_bytes[0:2]])
except Exception as e:
print(e)
这是在 CircuitPython 6.3.0 上使用 displayio
模块。对于那些不熟悉的人,CircuitPython 只是用于 MCU 的 Python 的精简版,它以 Python 3 为基础。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)