自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);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先,请考虑在不同SDK版本中使用的API,请使用 AndroidX ExifInterface Library
其次,ExifInterface用于读写各种图像文件格式的Exif标签。支持读取:JPEG,PNG,WebP,HEIF,DNG,CR2,NEF,NRW,ARW,RW2,ORF,PEF,SRW,RAF。
但是您将其用于位图,位图没有任何EXIF标头。从位图加载位图时,您已经丢弃了所有EXIF数据。在数据的原始源而不是位图上使用ExifInterface