开发者社区 问答 正文

如何在Android 10中获取图像的方向信息?

自android 10起,在访问媒体文件方面有一些更改。浏览了文档https://developer.android.com/training/data-storage/shared/media 之后,我已经能够将媒体内容加载到位图中,但是我没有获得方向信息。我知道对图像的位置信息有一些限制,但是这些exif限制也会影响方向信息吗?如果还有其他方法可以获取图像的方向信息,请告诉我。正在使用的代码如下(始终返回0-未定义的值)。谢谢。

 ContentResolver resolver = getApplicationContext().getContentResolver();
try (InputStream stream = resolver.openInputStream(selectedFileUri)) {
 loadedBitmap = BitmapFactory.decodeStream(stream);
 ExifInterface exif = new ExifInterface(stream);
 orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
}

展开
收起
Puppet 2020-01-06 14:47:19 640 分享 版权
1 条回答
写回答
取消 提交回答
  • 首先,请考虑在不同SDK版本中使用的API,请使用 AndroidX ExifInterface Library

    其次,ExifInterface用于读写各种图像文件格式的Exif标签。支持读取:JPEG,PNG,WebP,HEIF,DNG,CR2,NEF,NRW,ARW,RW2,ORF,PEF,SRW,RAF。

    但是您将其用于位图,位图没有任何EXIF标头。从位图加载位图时,您已经丢弃了所有EXIF数据。在数据的原始源而不是位图上使用ExifInterface

    2020-01-06 14:47:51
    赞同 展开评论
问答分类:
问答标签:
问答地址: