2014年3月20日木曜日

一筋縄ではいかぬExif:もちょっとがんばれExifInterface

こんにちは。今日も雨ですねー。しとしとしと。

今日もExif情報に振り回されていましたよ。

先日、Android SDKのExifInterfaceを使って、Exif情報の取得や書き込みに成功していたのですが。
ボスより呼び出し。「Exif情報ないんだけど」

・・・え?
あれ?手元のソフト(IrfanView)で見る限りはきちんと保存されてるのになー。

で、確認しましたら。確かにボスが使っているソフトで確認すると、必要なExif情報が表示されない。
あれー?

いろいろ調べてみると、Android SDKのExifInterfaceで定義されてるConstantsだけじゃ、ボスのソフトでは表示されないExif情報があるみたい。

さらにMIT?のこのサイトで調べてみると・・・「Exif SubIFD」というエリア?に属するタグが、ボスソフトに表示されるらしい・・・。

ExifInterfaceのsetAttribute()では、書き込むタグをStringで指定すれば書き込めるみたい。
さっそく試してみると、・・・ほぅ。無事書き込めました。

ただ、ここで一つ問題が。

ExifInterfaceのsetAttribute()は、タグ名とその値にString型をとるんです。
DateTimeOriginalとかは、Exifのデータ型も「ascii string」となっており、素直に設定されてくれるんですが・・・。

ExifImageWidthやExifImageHeightとかは、Exifのデータ型が「ascii string」じゃない・・・。こういうのを無理やりString型で突っ込んでも設定されないどころか、「Exif SubIFD」エリアのタグが全部設定されなくなってしまう。

どないすりゃええねん・・・。

そしてぼくーはー とほうーにー くれるー



0 件のコメント:

コメントを投稿