Сначала я собираюсь объяснить, что я пытаюсь сделать, а затем объяснить свою проблему.
Хорошо, поэтому я делаю прототипы проекта, над которым я надеюсь работать летом. Проект является небольшим медиа-плеером, и одним из требований является отображение произведения альбульма mp3 файла.
После некоторых исследований я нашел эту библиотеку: http://code.google.com/p/mutagen/
Причина, по которой я выбрал эту библиотеку, состояла в том, что у нее нет никаких зависимостей, и это сделает мое приложение более переносимым.
После завершения работы с кодом мне удалось получить данные из mp3 файла, например, год художника и год записи и т.д. Здесь я приведу небольшую демонстрацию:
from mutagen.mp3 import MP3
audio = MP3("born.mp3")
artist = audio["TPE1"]
print artist
В случае, если это не имеет большого смысла, это учебник, предоставляемый mutagen - http://code.google.com/p/mutagen/wiki/Tutorial (его немного Короче говоря)
Проблема. Я хочу отобразить изображение, используя pygame. Обычно это будет читать примерно так:
monkey = pygame.image.load("monkey.jpg")
screen.blit(monkey,(0,0))
но вместо этого я хочу использовать изображение из файла изображения. Итак, перейдя из первого примера, он читает что-то вроде:
audio = MP3("born.mp3")
data = audio.tags['APIC:'].data
monkey = pygame.image.load(data)
но pygame генерирует ошибку исключения, поскольку тип данных переменной "значение" является необработанными данными изображения в виде строки байтов.
Вопрос. Можно ли преобразовать байтовую строку в какой-то формат изображения, чтобы pygame мог его использовать?
Для документации python на изображениях - http://www.pygame.org/docs/ref/image.html
Я не уверен, что даже возможно сделать то, что я прошу, поэтому, пожалуйста, простите меня!
Вы пробовали pygame.image.fromstring()
?
Примечание: поскольку это необработанные данные, вам нужно заранее знать несколько деталей, таких как разрешение и глубина цвета.