我一直在尝试使用 sanselan library for android 来正确更新我的图像旋转数据,但我无法让它工作。我想知道这里是否有人让这个工作。我整天都在查看类似问题的答案,但似乎还没有任何效果。在银河 s3 和摩托罗拉剃须刀 m 上,出于某种原因,我总是在图片中嵌入风景旋转。我已经在我分配给我的相机和所有东西的参数中设置了旋转属性,但它仍然无法正常工作。有没有人对他们如何成功手动更新 android 图像中的 Exif 数据有任何想法、链接或示例?
问问题
1419 次
1 回答
2
某些设备,例如 Galaxy S3、Note2 会提供旋转图像。要正确获取图像,请按照以下步骤操作:
- 使用方向 exif 信息旋转位图
- 将正确的值设置为图像 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 回答