如何将图像的EXIF方向应用为android中的url

时间:2012-10-29 10:35:15

标签: android camera exif

我正在处理我的应用程序中的相机图像,它实际上是作为网址。相机应用程序处于纵向模式。因此图像有时会保持旋转或向右旋转。我知道我们可以使用EXIF从图库正常图像方向,我们可以检查exif值并进行适当的更改。基本上这是exif的代码

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

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

1 个答案:

答案 0 :(得分:1)

首先,你必须得到onActiviryResult中的Uri,就像这里一样 Get image Uri in onActivityResult after taking photo?
然后,当你有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;
}

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; }
然后,如果filepath不为null且不为空,则可以获取EXIF数据,检查并在需要时旋转图像 希望它会有所帮助。