Я пытаюсь извлечь скрытое сообщение из синих пикселей изображения так, чтобы, если синее значение было четным, оно представляло собой 0 в двоичной строке, а если синее значение было нечетным, оно представляло собой 1в двоичной строке.Каждая из 8-битных двоичных строк представляет символ, и вместе символы становятся скрытым сообщением.
Я разбил всю двоичную строку на 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