Python请求base64图像

nic*_*ted 13 python base64 data-uri python-requests

requests用来从远程URL获取图像.由于图像总是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
Run Code Online (Sandbox Code Playgroud)

输出response是:

response = b'GIF89a\x80\x00\x80\x00\xc4\x1f\x00\xff\xff\xff\x00\x00\x00\xff\x00\x00\xff\x88\x88"""\xffff\...
Run Code Online (Sandbox Code Playgroud)

HTML部分是:

<img src="{{src}}"/>
Run Code Online (Sandbox Code Playgroud)

但图像不显示.

我怎样才能正确地对64进行编码response

Dav*_*ann 14

我认为这只是

import base64
import requests

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

假设content-type已设定.

  • 这按预期工作!我只需要将`base64.b64encode(response.content))`更改为`str(base64.b64encode(r.content).decode("utf-8")))`.谢谢! (5认同)

spe*_*edy 5

这对我有用:

import base64
import requests

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