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