如何在 PyQt5 应用程序中使用 Mutagen 显示专辑封面?

How to display album art using Mutagen in a PyQt5 application?

我正在使用 Python3.6 和 PyQt5 设计一个简单的 mp3 播放器,当我尝试在 PyQt5 应用程序中显示图像时卡住了。

我正在使用 Mutagen 提取专辑封面,如下所示:

pict = tags.get("APIC:").data
im = Image.open(BytesIO(pict))
im.show()

这会在我的 Windows 图库中打开图像,而不是在 PyQt 应用程序中(很明显)。我的问题是如何将此图像嵌入应用程序本身,以便在播放歌曲时显示专辑封面?

我试过在标签内显示保存的图像,如下所示:

self.label.setText(_translate("MainWindow", "<html><head/><body><p><img src=\":/Images/81+8w4dqVXL._"
                                            "Cover Art.jpg\"/></p></body></html>"))

但这并不是我真正想要的,因为我需要将每个图像直接保存到用户的机器上。

关于如何在应用程序中直接实现这一点有什么建议吗?

不需要为此使用 PIL,因为您可以直接从标签数据创建 QPixmap,然后可以在标签中显示:

pixmap = QtGui.QPixmap()
metadata = mutagen.File(filename)
for tag in metadata.tags.values():
    if tag.FrameID == 'APIC':
        pixmap.loadFromData(tag.data)
        break
self.label.setPixmap(pixmap)