我使用以下简单代码来研究图像的方向。
Cursor cursor = getContentResolver().query(photoUri,
new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, null, null, null);
当photoUri是内容uri时,即从内容开始://光标被正确检索。当我从图库中选择图像时,我得到一个contentUri。
然而,当photoUri是fileUri时,即从file://a/b/c.jpg开始(当我从相机捕获图像时发生),光标为空。
是什么给出的?我对这种情况感到很困惑。
答案 0 :(得分:1)
回答评论:
你做不到。 MediaStore.Images.ImageColumns.ORIENTATION
是存储在content://
数据库中的数据库列。 file://
数据库不包含此类列,因此您无法查询它。
回答问题:
要提取方向,Android具有原生ExifInterface
类:https://developer.android.com/reference/android/media/ExifInterface.html
ExifInterface exif = new ExifInterface(filePath);
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);