「あーだめだこりゃ絶対!」と思ったことでも、意外なところにブレイクスルーがあるもんですね。
というわけで、今日の投稿はどちらかというと自分のための備忘録。ごめんちゃい。
・・・実は、仕事で公開しているAndroidのカメラアプリ「CALBAN Pro」で、撮影した写真のEXIFデータが「2002/12/08 12:00:00」となってしまう、という不具合があったんです。
やー、別に日付のところは何もいじってないしなー、おかしいなー・・・と思って色々調べてたら、どうもAndroidのライブラリに不具合あったらしく・・・。
えええー。そんなんどうしようもないよー。
でも何とかせんと、ユーザーさん困るしなー・・・。
ま、何なら自分でEXIFタグに現在時刻を設定しちゃえばいいのよ。うふふ。
ということで、直してみました。
こんな感じで時刻を作成して・・・
Date date = new Date();
SimpleDateFormat format_exif = new SimpleDateFormat(getString("yyyy:MM:dd HH:mm:ss"), Locale.JAPAN);
String datetime_original = (format_exif.format(date));TiffOutputDirectoryに日付をセット。
destDirectory.removeField(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL);で、ExifRewriter()を使ってメタデータを書き換え。
destDirectory.add(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL, datetime_original);
destDirectory.removeField(ExifTagConstants.EXIF_TAG_DATE_TIME_DIGITIZED);
destDirectory.add(ExifTagConstants.EXIF_TAG_DATE_TIME_DIGITIZED, datetime_original);
ExifRewriter().updateExifMetadataLossy(file, BufferedOutputStream, TiffOutputSet);・・・最初は「updateExifMetadataLossy」ではなくて、「updateExifMetadataLossless」を使っていたのですが、それだとエラーでうまくいかなかったです。ちょっとした違いなのになー。
ま、うまくいったからいいや。
0 件のコメント:
コメントを投稿