2

EXIF「キーワード」属性の値を持つ画像の EXIF 情報を取得しようとしています。画像を開いて次を使用するだけで、mini_magick を使用して EXIF 情報を正常に読み取ることができました。

image["EXIF:Model"]

何らかの理由で、次のいずれも、私が知っている画像のキーワードを返しません。

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

このユーティリティを使用して、問題の画像にこの情報があることを確認しました: http://regex.info/exif.cgi

mini_magick は特定の EXIF 値にしかアクセスできませんか? 特定の EXIF 情報にアクセスできるのに、他の情報にアクセスできないのは奇妙に思えます。

4

2 に答える 2

2

EXIFメタデータはカメラによって作成されるため、技術関連のもののみが含まれます。実際にアクセスしたいのはIPTCXMPです。

mini_magickの背後にあるImagemagickを使用すると、たとえばキーワードのIPTCを読み取ることができます(更新:パフォーマンスの問題に注意してください。コメントを参照してください)。image["%[IPTC:2:25]"]

XMPに関しては、これを行う簡単な方法がわかりません。あなたは実行を試みることができます

`identify -verbose #{your_filename}`

次に、を含む行をグラブしますxmp

于 2012-04-01T06:51:52.390 に答える
1

Nash Bridges が指摘したように、実際に XMP データにアクセスする必要がありました。私は、exifr と xmp という 2 つの gem を使用してこれを行う方法を見つけました。これらの両方の gem をインストールした後、画像のアップロードを処理するコントローラーで次のコードを使用しました。

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

mini_magick だけでこれを行う方法を見つけることができませんでしたが、mini_magick 画像モデルの「to_blob」メソッドによって生データ出力を解析することで可能になると確信しています。

于 2012-04-01T11:19:05.600 に答える