Как отобразить обложку альбома с помощью Mutagen в приложении PyQt5? - PullRequest
1 голос
/ 06 апреля 2019

Я проектирую простой mp3-плеер с использованием Python3.6 и PyQt5 и застрял при попытке отобразить изображение в приложении 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 Ответ

1 голос
/ 06 апреля 2019

Для этого не нужно использовать 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)
...