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>"))

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

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

4

1 回答 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)
于 2019-04-06T18:22:58.847 回答