我正在尝试将经纬度和其他数据写入我的自定义相机应用程序中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();
}
感谢。