Как получить ключевые слова EXIF, используя mini_magick в приложении Rails? - PullRequest
2 голосов
/ 01 апреля 2012

Я пытаюсь получить информацию EXIF ​​для изображений, которые имеют значения для атрибута EXIF ​​"ключевые слова". Я успешно прочитал информацию EXIF, используя mini_magick, просто открыв изображение и используя:

image["EXIF:Model"]

По какой-то причине ни одно из следующего не вернет ключевые слова для изображения, которое, я знаю, имеет их:

image["EXIF:Keywords"]
image["EXIF:XPKeywords"]
image["EXIF:Subject"]

Я подтвердил, что у рассматриваемого изображения есть эта информация, используя эту утилиту: http://regex.info/exif.cgi

Имеет ли mini_magick доступ только к определенным значениям EXIF? Кажется странным, что я могу получить доступ к определенной информации EXIF, но не к другой.

Ответы [ 2 ]

2 голосов
/ 01 апреля 2012

EXIF ​​метаданные создаются камерой, поэтому содержат только технические данные. На самом деле вы хотите получить доступ к IPTC и XMP .

Imagemagick, который стоит за mini_magick, позволяет читать IPTC , например. image["%[IPTC:2:25]"] для ключевых слов ( обновление : знать о проблемах производительности, см. Комментарии).

Что касается XMP, я не знаю простого способа сделать это. Вы можете попробовать запустить

`identify -verbose #{your_filename}`

, а затем строки grub, включающие xmp.

1 голос
/ 01 апреля 2012

Как отметил Нэш Бриджес, мне нужно было получить доступ к данным XMP. Я нашел способ сделать это, используя два гема: exifr и xmp. После установки обоих этих драгоценных камней, я использовал следующий код в моем контроллере, который обрабатывает загрузку изображения:

tags = XMP.parse(EXIFR::JPEG.new(StringIO.new(params[:file].read))).dc.subject.join(',').downcase

Мне не удалось найти способ сделать это только с помощью mini_magick, хотя я уверен, что это было бы возможно при анализе исходных данных с помощью метода "to_blob" модели изображения mini_magick.

...