как я могу показать изображение обложки аудио файла - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над программой проигрывателя musi c, я хотел показать изображение песни по умолчанию во время воспроизведения, так как я могу добавить и показать его в окне Tkinter. это то, что я пробовал:

import audio_metadata
metadata=audio_metadata.load('Barood_Dil.mp3')
print(metadata.pictures)

Вывод:

[<ID3v2Picture({
    'data': '50.48 KiB',
    'description': 'FRONT_COVER',
    'height': 600,
    'mime_type': 'image/jpeg',
    'type': <ID3PictureType.OTHER_FILE_ICON>,
    'width': 600,
})>]

это помогло мне получить всю информацию об изображении обложки, но я хотел показать ее в моем окне Tkinter.

1 Ответ

0 голосов
/ 10 апреля 2020

обложка альбома возвращается в списке словарей. Поэтому для доступа к первому изображению используйте: metadata.pictures[0] и для доступа к байтовым данным этого изображения используйте: metadata.pictures[0].data Try (Объяснение в комментариях к коду):

import audio_metadata
from tkinter import *
from PIL import ImageTk,Image
from io import BytesIO

#get all metadata of song.mp3
metadata=audio_metadata.load('song.mp3')

# get the picture data for the first picture in metadata pictures
artwork = metadata.pictures[0].data

# open stream (similar to file) in binary mode
stream = BytesIO(artwork)

root = Tk()
# display artwork on tkinter
canvas = Canvas(root, width = 512, height = 512)
canvas.pack()
img = ImageTk.PhotoImage(Image.open(stream))
canvas.create_image(0, 0, anchor=NW, image=img)
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...