【发布时间】:2014-10-21 09:39:51
【问题描述】:
我正在尝试将 lat-long 和其他数据写入我的自定义相机应用中的 jpeg 的 Exif 标头。通常,android 会自动使用光圈、ISO、快门速度等数据填充标题。但是,当我手动添加创建 ExifInterface 实例时,使用 SetAttributes() 设置 GPS 位置,然后调用 SaveAttributes();所有其他相机数据都消失了。
这应该发生吗?我怎样才能简单地添加标签而不覆盖其他所有内容?
我在其他地方看到了一个创建两个 ExifInterfaces 的示例,一个旧的(从图片中)和一个新的,并将每个填充的值从旧的复制到新的值以及任何其他数据。然而,这既烦人又冗长。我想找到更好的解决方案。
这是我的代码:
try{
ExifInterface exif = new ExifInterface(pictureFile.getAbsolutePath());
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, mGpsLocation.getLatDms());
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, mGpsLocation.getLonDms());
exif.setAttribute(ExifInterface.TAG_GPS_ALTITUDE, mGpsLocation.getAltDms());
exif.saveAttributes();
} catch(IOException e){
e.printStackTrace();
}
谢谢
【问题讨论】:
-
我不确定你为什么会这样。我已经尝试过您提到的相同方法,并且我的 EXIF 数据都没有被覆盖。保存属性后仅修改我的 GPS 位置。在以下设备上测试,Nexus Prime - 4.2.1 Motorola Moto E - 4.4.4
标签: android android-camera jpeg exif