使用tinytag和PIL将字节转换为图像

2024-05-13 13:21:08 发布

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

我正在使用python中的tinytags模块获取mp3文件的封面艺术,并希望显示或存储它。变量的返回类型显示为字节。我曾尝试过使用frombytes摸索PIL,但没有效果。是否有任何方法将字节转换为图像

from tinytag import TinyTag
tag = TinyTag.get("03. Me, Myself & I.mp3", image=True)

img = tag.get_image()

Tags: 模块文件image类型get字节piltag
1条回答
网友
1楼 · 发布于 2024-05-13 13:21:08

当我调用tag.get_image()时,我实际上得到了一个PNG图像,但我想你可能会得到一个JPEG。无论哪种方式,您都可以将其包装在BytesIO中,并使用PIL/Pillow打开或显示它。从您的代码继续:

from PIL import Image
import io

...
im = tag.get_image()

# Make a PIL Image
pi = Image.open(io.BytesIO(im))

# Save as PNG, or JPEG
pi.save('cover.png')

# Display
pi.show()

请注意,您没有使用PIL/枕头。您可以查看前几个字节,如果它们是PNG签名(\x89PNG),请使用PNG扩展名将数据另存为二进制。如果签名是JPEG(\xff\xd8),请将数据保存为具有JPEG扩展名的二进制文件

相关问题 更多 >