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

问题描述 投票:1回答:1

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

然而,这并不是我所追求的,因为我需要将每个图像直接保存到用户的机器上。

有关如何在应用程序内直接实现此建议的任何建议?

python-3.x image pyqt pyqt5 mutagen
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.