2017-10-23 11 views
0

Pythonがメモリ内の画像オブジェクトにBASE64バイトを変換するために、[キャプチャ '3xy5m']のような画像がある[1]どの3.5

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

**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) 

画像に変換するには、以下の機能を試してみてくださいしかし、それは例外をスロー:

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

私はそれを解決するために多くの方法を試してみてください、それは実際には機能しません。私はそれを解決する考えはありません。誰かが私を助けることを願っています。前もって感謝します。

+0

は、あなたが試してみました: 'f.seek(0)'そして '画像= Image.open(F)'? –

+0

それは問題を解決します。私は以前にそれを試したことがなかった。私はPythonで文字列とバイトの間に誤解がありました。ありがとうございます。 – Jack

答えて

1

あなたは文字列への不要な変換を行っています。デコードされると、画像データはバイナリであり、文字列タイプとは無関係です。

私は仮想ファイルを "巻き戻し" でしょう、そしてImageに直接渡します

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