5

我正在处理我的应用程序中的相机图像,这些图像实际上是作为 urls 获取的。相机应用程序处于纵向模式。所以图像有时会左旋转或右旋转。我知道我们可以使用 EXIF 来从图库中获取正常的图像方向,在那里我们可以检查 exif 值并进行适当的更改。基本上这是 exif 的代码

ExifInterface exif = new ExifInterface("filepath");
exif.getAttribute(ExifInterface.TAG_ORIENTATION);

所以我的问题是在我的情况下文件路径是什么,是 url 本身还是我应该为此创建一个文件.. 任何帮助将不胜感激....

4

1 回答 1

1

首先,您必须在 onActiviryResult 中获取 Uri,例如在 拍照后在 onActivityResult 中获取图像 Uri?
然后,当你有 Uri 时,你可以像这样得到文件路径: String filepath = getRealPathFromURI(someUri);

public String getRealPathFromURI(Uri contentUri) {
    String res = null;
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
    if(cursor != null && cursor.moveToFirst()){;
       int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
       res = cursor.getString(column_index);
    }
    cursor.close();
    return res;
}


然后,如果文件路径不为空且不为空,您可以获取 EXIF 数据,检查它并在需要时旋转图像。
希望它会有所帮助。

于 2013-03-07T10:37:18.747 回答