Как мне работать с «данными изображения в виде строки байтов», используя Python?

1

Сначала я собираюсь объяснить, что я пытаюсь сделать, а затем объяснить свою проблему.

Хорошо, поэтому я делаю прототипы проекта, над которым я надеюсь работать летом. Проект является небольшим медиа-плеером, и одним из требований является отображение произведения альбульма 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

Я не уверен, что даже возможно сделать то, что я прошу, поэтому, пожалуйста, простите меня!

Теги:
image
pygame
byte
bytestring

1 ответ

1
Лучший ответ

Вы пробовали pygame.image.fromstring()?

Примечание: поскольку это необработанные данные, вам нужно заранее знать несколько деталей, таких как разрешение и глубина цвета.

  • 0
    Привет, я пробовал это, но я продолжал получать ошибки, поэтому я не был уверен, был ли я на правильном пути. Можете ли вы дать мне пример? Спасибо
  • 1
    я постараюсь не забыть разобраться с этим позже ... У меня нет mp3-файла со встроенными данными изображений, и у меня также не установлена Pygame. Я могу сказать, что PIL (python-imaging) и matplotlib были бы моим первым выбором для того, что вы делаете: import Image; из matplotlib импортировать pyplot как p; im = Image.fromstring ((w, h), 'RGB', data); p.imshow (им); p.show ()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню