我正在处理我的应用程序中的相机图像,它实际上是作为网址。相机应用程序处于纵向模式。因此图像有时会保持旋转或向右旋转。我知道我们可以使用EXIF从图库正常图像方向,我们可以检查exif值并进行适当的更改。基本上这是exif的代码
ExifInterface exif = new ExifInterface("filepath");
exif.getAttribute(ExifInterface.TAG_ORIENTATION);
所以我的问题是在我的情况下文件路径是什么,它是url本身还是我应该为此创建一个文件.. 任何帮助将不胜感激....
答案 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数据,检查并在需要时旋转图像
希望它会有所帮助。