web-dev-qa-db-ja.com

Python base64画像をリクエスト

リモートURLから画像を取得するためにrequestsを使用しています。画像は常に16x16なので、後でbase64に変換して、後で埋め込んでHTML imgタグで使用できるようにします。

import requests
import base64
response = requests.get(url).content
print(response)
b = base64.b64encode(response)
src = "data:image/png;base64," + b

responseの出力は次のとおりです。

response = b'GIF89a\x80\x00\x80\x00\xc4\x1f\x00\xff\xff\xff\x00\x00\x00\xff\x00\x00\xff\x88\x88"""\xffff\...

HTML部分は次のとおりです。

<img src="{{src}}"/>

ただし、画像は表示されません。

responseを適切にbase-64エンコードするにはどうすればよいですか?

13
nickbusted

それだけだと思います

import base64
import requests

response = requests.get(url)
uri = ("data:" + 
       response.headers['Content-Type'] + ";" +
       "base64," + base64.b64encode(response.content))

content-typeが設定されています。

15
David Ehrmann

これは私のために働きました:

import base64
import requests

response = requests.get(url)
uri = ("data:" + 
       response.headers['Content-Type'] + ";" +
       "base64," + base64.b64encode(response.content).decode("utf-8"))
3
spedy

Base64パッケージを使用できます。

import requests
import base64

response = requests.get(url).content
print(response)
b64response = base64.b64encode(response)
print b64response 
2
Nipun Talukdar