나는 파랑의 값도 경우, 그것은 이진 문자열에서 0을 나타내는 그런 그림의 파란색 픽셀에서 숨겨진 메시지를 추출하려고 시도하고있어, 청색 값이 홀수 인 경우, 그것은 1을 나타냅니다 2 진 문자열. 8 비트 2 진 문자열은 각각 문자를 나타내며 함께 문자는 숨겨진 메시지가됩니다.파이썬에서 어떻게 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
당신은 ASCII로 8 비트 숫자를 변환 할 수 없습니다 : 당신은 7 비트 숫자 만 변환 할 수 있습니다. ASCII는 8 비트를 보유하지 않습니다. – tchrist