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

时间:2019-04-06 16:17:15

标签: python-3.x image pyqt pyqt5 mutagen

我正在使用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>"))

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

关于如何直接在应用程序内部实现此建议?

1 个答案:

答案 0 :(得分:1)

不需要使用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)