1

我一直在尝试使用 sanselan library for android 来正确更新我的图像旋转数据,但我无法让它工作。我想知道这里是否有人让这个工作。我整天都在查看类似问题的答案,但似乎还没有任何效果。在银河 s3 和摩托罗拉剃须刀 m 上,出于某种原因,我总是在图片中嵌入风景旋转。我已经在我分配给我的相机和所有东西的参数中设置了旋转属性,但它仍然无法正常工作。有没有人对他们如何成功手动更新 android 图像中的 Exif 数据有任何想法、链接或示例?

4

1 回答 1

2

某些设备,例如 Galaxy S3、Note2 会提供旋转图像。要正确获取图像,请按照以下步骤操作:

  1. 使用方向 exif 信息旋转位图
  2. 将正确的值设置为图像 exif 方向

如果我没看错,您的问题出现在第 2 步。如果您尝试更新 exif 方向,Sanselan 将复制方向属性。所以首先,你必须删除方向值,然后添加值。我是这样解决的:

            List<?> sourceDirectories = outputSet.getDirectories();
            for (int i = 0; i < sourceDirectories.size(); i++) {
                TiffOutputDirectory sourceDirectory = (TiffOutputDirectory) sourceDirectories.get(i);

                List<?> sourceFields = sourceDirectory.getFields();
                for (int j = 0; j < sourceFields.size(); j++) {
                    TiffOutputField sourceField = (TiffOutputField) sourceFields.get(j);
                    if (sourceField.tagInfo.name.equals("Orientation")) {
                        sourceDirectory.removeField(sourceField.tagInfo);
                    }
                }
            }

            TiffOutputDirectory tiffDirectory = outputSet.getExifDirectory();
            TiffOutputField orientationField = TiffOutputField.create(TiffConstants.EXIF_TAG_ORIENTATION, outputSet.byteOrder, 1);
            tiffDirectory.add(orientationField);

这篇文章可以帮助你定位价值

于 2013-02-06T08:19:58.910 回答