gpt4 book ai didi

python - 在 Python 中,如何将 8 位二进制数转换为 ASCII 字符?

转载 作者:行者123 更新时间:2023-11-28 20:09:55 25 4
gpt4 key购买 nike

我试图从图片的蓝色像素中提取隐藏信息,如果蓝色值为偶数,则表示二进制字符串中的 0,如果蓝色值为奇数,则表示 1在二进制字符串中。 8 位二进制字符串每个代表一个字符,这些字符组合在一起就成为一条隐藏消息。

我已将整个二进制字符串分解为 8 位二进制子字符串,但我应该如何将这些“ block ”转换为 ASCII 字符? chr() 和 ord() 以及 unichr() 似乎不起作用。有什么方法或函数可以直接将8位二进制子串转换成对应的ASCII字符,还是需要手动转换字符串?

import Image

def chunks(s, n):
for start in range(0, len(s), n):
yield s[start:start+n]

image = Image.open('image.png')
imagePixels = image.load()
imageWidth = image.size[0]
imageHeight = image.size[1]
blueValueEightString = ""

for y in range(imageHeight):
for x in range(imageWidth):
blueValue = imagePixels[x, y][2]

if blueValue%2 == 0:
blueValue = 0
else:
blueValue = 1

blueValueString = str(blueValue)
blueValueEightString += blueValueString

for chunk in chunks(blueValueEightString, 8):
print chunk

最佳答案

需要先将其转换为整数,然后可以使用chr()获取该值对应的ascii字符:

>>> binary_string = '01110111'
>>> int(binary_string, 2)
119
>>> chr(int(binary_string, 2))
'w'

关于python - 在 Python 中,如何将 8 位二进制数转换为 ASCII 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9509502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com