JPEG文件中的EXIF数据

14

使用 ExifInterface 在 Android 中将自定义数据写入 JPEG 图像文件的 Exif 数据

想要像姓名、年龄等信息一样在 JPEG 文件写入/添加自定义的标签/ Exif 数据...目前我能够写入默认值,例如 Geo 位置数据、属性等... 但是我能否使用 ExifInterface(Android) 写入 JPEG 图像中的自定义数据?

是否可能或有其他替代方法来管理这些图片信息?


1
嗨。我尝试使用ExifInterface编写自定义数据,但它无法写入,所以我查看了这个类的源代码。它使用了一个本地类,我也查看了那个类,并发现它是不可能的。如果您已经找到了解决此问题的方法,请添加答案。 - Aram
2个回答

13

Android的ExifInterface只允许您编写“已识别”的exif标签。您可以在以下链接中找到一些被认可的exif标签:http://developer.android.com/reference/android/media/ExifInterface.html

但好消息是,还有更多未在Android API中提到的exif标签。坏消息是,我仍然没有找到一个列出所有可用exif标签的库。

经过研究和试验,我发现以下标签有效:

 

"UserComment"

因此,以下代码片段将起作用:

String mString = "Your message here";     
ExifInterface exif = new ExifInterface(path_of_your_jpeg_file);
exif.setAttribute("UserComment", mString);
exif.saveAttributes();

我仍在努力查找哪些其他的Exif标签是允许的,但目前这应该可以解决问题。


在我添加了“UserComment”之后,图像就从画廊消失了!! - 有人遇到过这个问题吗? - EsmaeelQash
@baekacaek 写完自定义属性后如何重新读取?有什么想法吗? - sups

1

要做到这一点,请使用Android EXIF接口

  1. 使用此方法添加您的属性 public void setAttribute(String tag,String value)

  2. 使用此方法创建JPEG的新版本。 public void saveAttributes()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接