2017-10-23 16 views
0

하여 메모리에 이미지 객체를베이스 64 바이트로 변환하는 단계 [CAPTCHA "3xy5m ']와 같은 이미지가 어떻게 [1]파이썬 3.5

[1] : https://i.stack.imgur.com/8aAjg.jpg. ,

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte.

내가 그것을 해결하기 위해 여러 가지 방법을 시도해보십시오

**Its base64 string** is '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'. 

나는 이미지

def crack_captchatest(base64_code): 

f = BytesIO() 
f.write(base64.b64decode(base64_code)) 
f.read() 

print(f.getvalue()) 
image = Image.open(stringIOModule.StringIO(f.getvalue().decode('utf-8'))) 
image = np.array(image) 

로 변환하기 위해 다음과 같은 기능을 시도하지만 예외가 발생합니다 하지만 실제로 작동하지 않습니다. 나는 그것을 풀 수 있을지 모른다. 누군가 나를 도울 수 있기를 바랍니다. 미리 감사드립니다.

+0

당신이 시도 :'f.seek (0)'다음'이미지 = Image.open (F)'? –

+0

문제를 해결합니다. 전에 한번도 시도한 적이 없었습니다. 파이썬에서 문자열과 바이트 사이에 오해가있었습니다. 대단히 감사합니다. – Jack

답변

1

문자열로 불필요한 변환을하고 있습니다. 디코딩 된 이미지 데이터는 문자열 형식과의 관련성없이 2 진수입니다.

내가 가상 파일을 "되감기"것, 다음 Image에 직접 전달합니다

f = BytesIO() 
f.write(base64.b64decode(base64_code)) 
f.seek(0) 
image = Image.open(f)