【问题标题】:ExifInterface doesn't update exif tagsExifInterface 不更新 exif 标签
【发布时间】:2011-03-03 21:29:53
【问题描述】:

我正在尝试使用 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 image exif


    【解决方案1】:

    以防万一有人在寻找纯 android 解决方案:原始代码是正确的,但 TAG_ORIENTATION 属性的值必须是 1 到 8 之间的值,如 this page 中所述。

    您必须禁止调用readAttribute() 方法的行,该方法在ExifInterface 类中不存在。如果要读取修改前后的值,请将其替换为exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION, defaultValue)

    【讨论】:

    • 我设法更改了更新 exif 标签,但我的图像没有旋转。怎么来的?
    • 嗨,我正在这样做 ExifInterface exifInterface = new ExifInterface(file.getPath()); int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); 然后 switch(orientation) { case ExifInterface.ORIENTATION_ROTATE_90: exifInterface.setAttribute(ExifInterface.TAG_ORIENTATION, ""+ExifInterface.ORIENTATION_ROTATE_90); exifInterface.saveAttributes(); break; 但没有运气!
    • @eternay 你知道为什么我的问题中没有将 exif 数据写入图像吗? stackoverflow.com/questions/27732781/…
    【解决方案2】:

    还要确保您的应用具有 WRITE_EXTERNAL_STORAGE 权限

    【讨论】:

    • 好收获。这是我的问题。保存文件以本机方法进行,因此它不会抱怨缺少权限但需要一个。
    【解决方案3】:

    你应该使用类似的东西

    exifInterface.setAttribute(TAG_ORIENTATION, ""+ExifInterface.ORIENTATION_ROTATE_90);
    

    改为

    【讨论】:

    • 嗨,我已经通过使用sanselan 解决了这个问题。完美运行
    • 我更喜欢 eternay 的解决方案。恕我直言,为这样一个简单的案例引入一个库是矫枉过正的。
    【解决方案4】:

    试试这个:

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
    

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      相关资源
      最近更新 更多