EXIF情報が更新されない

823 views
Skip to first unread message

ソフトレット 佐藤

unread,
Sep 2, 2011, 4:50:41 AM9/2/11
to android-g...@googlegroups.com
お世話になります。佐藤と申します。

現在、画像に対してEXIF情報を修正等したいのですが、
修正されません。

どこが間違っているか、ご教授お願い致します。

/*====プログラム開始====*/
String path=
Environment.getExternalStorageDirectory()+"/DCIM/Camera/test.jpg";

ExifInterface exif=new ExifInterface(path);

exif.setAttribute(ExifInterface.TAG_DATETIME, "2011:01:01 12:00:00");
exif.saveAttributes();
/*====プログラム終了====*/

画像はデフォルトのカメラアプリで撮った物で、存在しています。

Manifestには以下を記載しております。
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

上記プログラム後に
exif.getAttribute(ExifInterface.TAG_DATETIME)を見ると、
きちんと更新後の時間が入っているのですが、
実際のファイルの詳細情報を見ますと、更新前の時間のままです。

その他のEXIF情報も同様です。


かなり悩んでおりますので、
どなたかご教授よろしくお願い致します。

--
◆━━━━━━━━……‥・・‥……━━━━━━━━◆
  株式会社 SofToLet (http://www.softolet.com/)
 [住所] 大阪市中央区平野町1-5-9 井上ビル2F
  [TEL/FAX] 06-6222-3218
  佐藤 真紀(m_s...@softolet.com
◆━━━━━━━━……‥・・‥……━━━━━━━━◆

K・F

unread,
Sep 2, 2011, 8:21:04 PM9/2/11
to 日本Androidの会
こんにちは。はじめまして。KFと申します。
丁度同じ事していたのでご報告を。
ExifInterface.TAG_DATETIMEで書き変えたデータ部は、Exifでいうと「撮影日時」に値します。
しかし端末側で表示しているのはExifの「データ作成日時」になるので、ここを編集しないと、
変更されていても、実際には変更されているようには見えません。
試しに、Exif内容を改変した写真データをPCに取り込んで、Stirliongなどのバイナリファイルエディタ
で開いて見てください。Exif内容を覗く事が出来、改変した日時データを確認できます。
Exifのデータ作成日時を変更するやり方は、こちらでもまだ確認できていません。申し訳ない。
提供されているTAGにはそれらしいものが無いので、セキュリティの関係で出来ない仕様なのかもしれま
せん。それに、ExifInterfaceで改変できるのはかなり限定されているので、深い意味では改変できてい
ないと言えます。
確実なのはExif内容をまるまる改変するプログラムを自分で組むことです。写真データの収まっている
領域とExifデータの領域を検索できる物さえ作ってしまえば、改変は割と簡単なので、一度チャレンジ
してみてはいかがでしょうか。幸い、Exifに関するサンプルプログラムは海外で多く出回っています。
因みに、androidのExif関係については、下記のサイトが詳しいです。
ご参考になれば幸いです。
資料サイト:http://y-anz-m.blogspot.com/search?q=exif

K・F

unread,
Sep 2, 2011, 8:36:05 PM9/2/11
to 日本Androidの会
すみません。変更できるのを今確認しました。申し訳ない。
やり方としては、TAGを使用せずに、Exifの規格に沿って検索をかけるだけで良いようです。
今回の場合、ExifInterface.TAG_DATETIMEの部分を"DateTimeOriginal"にすれば行けるはずです。

/*====プログラム開始====*/
String path=
Environment.getExternalStorageDirectory()+"/DCIM/Camera/test.jpg";

ExifInterface exif=new ExifInterface(path);

exif.setAttribute("DateTimeOriginal", "2011:01:01 12:00:00");
exif.saveAttributes();
/*====プログラム終了====*/

自分はこれで日付の変更に成功しました。
機種によっては再起動や再マウントが必要になるかもしれません。
先走って書いてしまって申し訳ないです。
よろしくお願いします。

On 9月2日, 午後5:50, ソフトレット 佐藤 <m_s...@softolet.com> wrote:

Hiroshi SAKURAI

unread,
Sep 3, 2011, 9:28:47 PM9/3/11
to android-g...@googlegroups.com
桜井と申します。

> きちんと更新後の時間が入っているのですが、
> 実際のファイルの詳細情報を見ますと、更新前の時間のままです。

ファイルの詳細情報は、どのように見ていますか?
1. PC等にファイルを転送して、PCで確認
2. Androidのギャラリーアプリで確認。

2.だとすると、Androidのギャラリーアプリなどでは、ContentResolverから取得した情報を
表示していると思いますので、Exifファイル自体の他に
ContentResolverの情報も更新しないとダメな気がします。

--
Hiroshi SAKURAI

2011/9/2 ソフトレット 佐藤 <m_s...@softolet.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

ソフトレット 佐藤

unread,
Sep 4, 2011, 9:57:58 PM9/4/11
to android-g...@googlegroups.com
佐藤です。
先日はアドバイスありがとうございました。


EXIF情報、すみません、更新されていました・・・!!

ファイルの詳細情報をPCで、プロパティで見ていたのですが、
(更新時間等で、判断していました)
EXIFが見れる専用のソフトをDLすると、
無事更新されていました・・・!

本当にお騒がせして申し訳ないです。

その他にGPSやモデル等を修正すると、
きちんとEXIFのツールで修正後のものが表示されることを確認しました。

色々とアドバイスありがとうございました。
また何か躓いたら、よろしくお願い致します。


以上

Reply all
Reply to author
Forward
0 new messages