将二进制图像数据转换为图像并在HTML中显示

2024-06-28 14:35:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Musicbrainsngs—用于musicbrainzapi的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表示将以字符串形式返回“二进制图像数据”。在

我的问题是: 这是什么类型的数据-(base64编码的PNG?我该怎么说?)在

但更重要的是,我该怎么办?如何将其保存为图像,或使用HTML将其显示为图像?在

图像数据为1mm字符-以下是开头的简短示例:

^{pr2}$

Tags: 数据图像importidreleaseasgroupmb
1条回答
网友
1楼 · 发布于 2024-06-28 14:35:44

看起来API并没有填充这个信息。在

备选方案1

只需接受二进制数据并将其写入文件(以二进制模式)。然后使用magic(libmagic包装器)来确定mime类型。并相应地重命名。在

#! /usr/bin/python
# -*- coding: utf-8 -*-

import musicbrainzngs as mb
import magic
import os

release_group_ID = '5c14fd50-a2f1-3672-9537-b0dad91bea2f'
artwork = mb.get_release_group_image_front(release_group_ID)

result_file = 'result_file'

with open(result_file, 'wb') as file_handler:
    file_handler.write(artwork)

mime = magic.Magic(mime=True)
mime_type = mime.from_file(result_file)

if mime_type == 'image/jpeg':
    os.rename(result_file, result_file + '.jpg')
elif mime_type == 'image/png':
    os.rename(result_file, result_file + '.png')
elif mime_type == 'image/gif':
    os.rename(result_file, result_file + '.gif')
elif mime_type == 'image/bmp':
    os.rename(result_file, result_file + '.bmp')
elif mime_type == 'image/tiff':
    os.rename(result_file, result_file + '.tiff')
else:
    print('Not an image? %s' % mime_type)

备选方案2

同样,只需将二进制数据保持原样并将其写入文件(以二进制模式)。现在用PIL打开它,并以您实际需要的格式保存它(PIL不关心输入图像的格式,支持大约80种不同的格式)。然后删除原始文件。在

^{pr2}$

相关问题 更多 >