我有一个 .jpeg 文件的数据字符串,如下所示,从 HTTP 请求正文中检索:
ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001\u0000\u0001\u0000\u0000ÿâ\u0001ØICC_PROFILE\u0000\u0001\u0001\u0000\u0000\u0001È\u0000\u0000\u0000\u0000\u00040\u0000\u0000mntrRGB XYZ \u0007
...
我想使用 Python 将其保存为图像(并最终将图像转换回这种格式)。
我尝试使用 urllib,假设它采用 Base64 和 UTF-8:
import urllib.request
data = u"ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001" # ...
uri = "data:image/jpeg;charset=UTF-8;base64," + data
response = urllib.request.urlopen(uri)
with open(r'image.jpg', 'wb') as f:
f.write(response.file.read())
但是 Windows 将其读取为不支持的文件类型/已损坏。 是因为Unicode字符吗?如果是这样,我如何找到原始的 ASCII?
您需要使用 URI 的 base64 编码。
import base64
uri = "data:image/jpeg;charset=UTF-8;base64," + base64.b64encode(data)