Сохранить MP3 ID3V2 APIC в файл JPEG

Я пытаюсь прочитать и сохранить картинку APIC в файл, используя taglib-ruby, но я пытаюсь понять, как это сделать. Из того, что я могу сказать, изображение 'image/jpeg' и ASCII-8BIT. Кто-нибудь пытался это сделать?

2 ответа

Вы также задали этот вопрос в выпуске taglib-ruby. Ответ оттуда:

Документация включает в себя пример чтения данных изображения, см. TagLib::ID3v2:: Примеры тегов.

Затем просто запишите данные изображения в файл, например, так:

TagLib::MPEG::File.open("file.mp3") do |file|
  tag = file.id3v2_tag
  covers = tag.frame_list('APIC')
  unless covers.empty?
    cover = covers.first
    File.open("output.jpg", "wb") do |f|
      f.write(cover.picture)
    end
  end
end

Вы также должны проверить тип изображения MIME, используя cover.mime_type и настройте расширение файла соответственно.

Это привело к решению проблемы, с которой я столкнулся - я не понимал, как подготовить извлеченное изображение для Paperclip. https://gist.github.com/adamyonk/5621295

Другие вопросы по тегам