如何用Python修改字节中的位?

0 投票
2 回答
1002 浏览
提问于 2025-04-18 06:38

我有一张 .bmp 格式的图片,我想在里面做一些隐写术(就是把信息藏在图片里)。

为了做到这一点,我需要把 .bmp 图片转换成字节列表,然后对这些字节的位(bit)进行一些修改。

我使用 open() 函数,参数设置为 "rb" 来读取字节列表,然后用 '{0:08b}'.format(mybyte) 把每个字节转换成字符串。

我想问的是,如何把这个字节的字符串表示再转换回字节呢? 也许还有更快或者更正确的方法来处理位?

2 个回答

0

使用 binascii 模块。

举个例子:

binascii.a2b_hex('A0')
1

int构造函数可以很简单地做到这一点:

>>> s = '{0:08b}'.format(42)
>>> s
'00101010'
>>> int(s, 2)
42

撰写回答