使用Python读取和编辑位图

Dak*_*ras 4 binary image-processing python-3.x

我需要读取位图图像文件(.bmp)并将二进制数据拆分为一个字节数组,然后我可以将其重新组合成原始文件.最后,我将修改每个字节的一部分来存储数据,然后读取它以获取数据.

细节

目前,我正在使用

file = open("example.bmp","rb")

data = file.read()

file.close()

获取数据.然而,这是相当缓慢和低效的.接下来我想将其拆分为一个字节数组,并将每个位的最后一位更改为0,而不是元数据的一部分(我将使用if语句从每个奇数字节中减去1).然后我将重新合并数据,并使用以下代码将其保存到新的图像文件中:

file = open("example2.bmp","wb")

file.write(数据)

file.close()

虽然我怀疑这也可能是次优的.

我需要知道如何将大量二进制数据拆分成字节.

Bre*_*rne 5

data已经是一个字节数组,您可以使用切片表示法进行索引.例如,根据BMP文件格式,位图文件头是在data[0:14].您可能希望在Python中使用C库来节省一些时间.