问题描述
我试图改变EXIF标签与ExifInterface。我使用的setAttribute()并调用saveAttributes()。标签被暂时保存,那么下一次的旧值仍然存在,一直没有更新...........
例如:
ExifInterface exifInterface =新ExifInterface(文件路径);
字符串01 = exifInterface.readAttribute(TAG_ORIENTATION); // o1的是0
exifInterface.setAttribute(TAG_ORIENTATION,90);
exifInterface.saveAttributes();
字符串O2 = exifInterface.readAttribute(TAG_ORIENTATION); // O2是90后
//重新启动应用程序,读取属性相同的照片
字符串O3 = exifInterface.readAttribute(TAG_ORIENTATION); // O3为0再次,前人的精力是90
万一有人找一个纯粹的Android解决方案:原来的code是正确的,但价值 TAG_ORIENTATION
属性,必须在1和8之间的值,如解释了这个页面。
您必须要喝preSS与呼叫该行 readAttribute()
的方法,这种方法不会在ExifInterface类存在。与 exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION,设置defaultValue)
如果你想之前和修改后读值。
I'm trying to change exif tags with ExifInterface. I use setAttribute() and call saveAttributes(). The tag is saved temporarily, then next time the old value is still there and hasn't been updated................
Example:
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"
Just in case someone is looking for a pure android solution: original code is correct, but value of TAG_ORIENTATION
attribute must be a value between 1 and 8, as explained in this page.
You must suppress the line with the call to readAttribute()
method, this method doesn't exist in the ExifInterface class. Replace it with exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION, defaultValue)
if you want to read the value before and after the modification.
这篇关于ExifInterface不更新EXIF标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!