我正在尝试从一张图片的蓝色像素中提取隐藏信息,如果蓝色值为偶数,则代表二进制字符串中的0,如果蓝色值为奇数,则代表二进制字符串中的1。每个8位二进制字符串都代表一个字符,这些字符组合在一起形成了一个隐藏信息。
我已将整个二进制字符串分解为8位二进制子字符串,但是如何将这些“块”转换为ASCII字符呢?chr()、ord()和unichr()似乎都不起作用。是否有一种方法或函数可以直接将8位二进制子字符串转换为相应的ASCII字符,还是必须手动转换字符串?
我已将整个二进制字符串分解为8位二进制子字符串,但是如何将这些“块”转换为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