【发布时间】:2018-02-21 23:30:39
【问题描述】:
我正在使用 Musicbrainsngs - Musicbrainz API 的 Python 库。请求一些专辑插图。
import musicbrainzngs as mb
release_group_ID = '5c14fd50-a2f1-3672-9537-b0dad91bea2f'
artwork = mb.get_release_group_image_front(release_group_ID)
print(artwork)
documentation 表示它将以字符串形式返回“二进制图像数据”。
我的问题: 这是什么类型的数据-(Base 64 编码的 PNG?我怎么知道?)
但更重要的是 - 我该怎么办?如何将其保存为图像,或使用 HTML 将其显示为图像?
图像数据为 1mm 字符-这是开头的简短示例:
b'x16\x00\xe0}\xc1\x17\xfb_U{R\xd43uL\xbf\xe33\xec3e(,\xa7p\x00\xa2+\x02 \x9c\x92\xb6\x0b\x00\x07\xf9x\xeaa\xd5\x99 i\xab$\xe2\x92\xa3Co\xb9`\xb9\x1cd\x911\x01[\x0c\xd0\x9c\xaa\x81\x08Q|\x13\xe4\xd9:c\xa47\xfe\xca*q\xf5\xd4O\xea\x0fi\x9c\xcc\xf8u\x88\x0b\x16\x11m?#F\x9d\x9a\xe8}I&\xfe\xb5]t\xcf\xf0\x1f\xeb\xce\x9d\xa4iy^\x8b\xf7;2cde\xac\xd0\xc9\x12\x7f<I$)\rI\x90\xe3j\xc2!D\xdbg\xfe&\xf2:"rl;)\x98\n\x80\x9e \x1fS\x8e\x87\xce\xaa\xe0\x8a\xc2\x9b\'
【问题讨论】:
-
从查看 musicbranzngs 的代码来看,关于您应该如何判断 api 返回的内容真的很模糊。它以最简单的形式向 API 发出 HTTP 请求,然后为您提供返回的原始数据。我假设您可以将其写入某种虚拟文件描述符。
-
同意。希望我可以使用lib,但你是对的。最简单的方法就是绕过这个方法并直接调用 API。我会继续这样做。至于 UTF-8,我的理解是,它只适用于 txt 文件,而不适用于图像。
-
是的,我就是这么想的。或者重写
get_image代码以返回响应对象,然后从那里开始工作。 -
import base64....base64.decodestring(image_str)...阅读这个简短的教程..也许它会有所帮助..code.tutsplus.com/tutorials/…
标签: python image musicbrainz binary-image