【问题标题】:Using Python to read and edit bitmaps使用 Python 读取和编辑位图
【发布时间】:2013-06-08 21:40:50
【问题描述】:

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

详情

目前,我正在使用

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

data = file.read()

file.close()

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

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

file.write(数据)

file.close()

虽然我怀疑这也可能不是最理想的。

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

【问题讨论】:

    标签: image-processing python-3.x binary


    【解决方案1】:

    data 已经是一个字节数组,您可以使用切片表示法对其进行索引。例如,根据BMP file format,位图文件头在data[0:14]。您可能想改用C libraries in Python 来节省一些时间。

    【讨论】:

    • 谢谢!您对快速读取数据有什么建议吗?
    • 这是读取文件的最快方法,假设它都适合内存。你确定这是程序的慢部分吗?
    • 是的 - 单独测试,它被冻结了很多次,即使在读取较小的位图时也是如此。
    • 问题可能出在您的文件系统上。文件可能被锁定或网络可能很慢。首先将文件复制到本地磁盘。
    猜你喜欢
    • 2011-02-14
    • 2020-07-13
    • 2019-04-17
    • 2018-10-24
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2011-05-20
    相关资源
    最近更新 更多