我正在尝试使用ExifInterface更改exif标签。我使用setAttribute()并调用saveAttributes()。标记被临时保存,然后下一次旧值仍然存在并且尚未更新......。
例子:
ExifInterface exifInterface = new ExifInterface(filePath);
String o1 = exifInterface.readAttribute(TAG_ORIENTATION); //o1 is "0"
exifInterface.setAttribute(TAG_ORIENTATION, "90");
exifInterface.saveAttributes();
String o2 = exifInterface.readAttribute(TAG_ORIENTATION); //o2 is "90"
// relaunch app, read attribute for same photo
String o3 = exifInterface.readAttribute(TAG_ORIENTATION); //o3 is "0" again, sould be "90"
最佳答案
万一有人在寻找纯粹的android解决方案:原始代码是正确的,但是TAG_ORIENTATION
属性的值必须是1到8之间的值,如this page中所述。
您必须使用对readAttribute()
方法的调用来禁止该行,该方法在ExifInterface类中不存在。如果要在修改前后读取值,请用exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION, defaultValue)
替换。