我需要读取一个位图图像文件(.bmp)并将二进制数据拆分成一个字节数组,然后我可以将其重新组合成原始文件。最后,我将修改每个字节的一部分来存储数据,然后读取它以获取数据。
目前,我正在使用
file = open(“example.bmp”,“rb”)
data = file.read()
file.close()
获取数据。然而,这是相当缓慢和低效的。接下来我想将其拆分为字节数组,并将每个位的最后一位更改为0(不是元数据的一部分)(我将使用if
语句从每个奇数字节中减去1)。然后我将重新合并数据,并使用以下代码将其保存到新的图像文件中:
file = open(“example2.bmp”,“wb”)
file.write(数据)
file.close()
虽然我怀疑这也可能是次优的。
我需要知道如何将大量二进制数据拆分成字节。
答案 0 :(得分:5)
data
已经是一个字节数组,您可以使用切片表示法进行索引。例如,根据BMP file format,位图文件头位于data[0:14]
。您可能希望使用C libraries in Python来节省一些时间。