给定图像Uri
,我需要将图像保存到应用程序的缓存目录中。我使用bitmap
从Uri
中提取InputStream
,因为Uri
可能来自MediaStore
或其他应用的内容Uri
(例如Google照片)和filePath无法在所有情况下安全地派生。
由于没有方法可以从EXIF
或InputStream
及其下方的FileDescriptor
中读取Marshmallow
,我使用的是this库,其中包含Exif InputStream
的构造函数。
我想要的是,当我从bitmap
中提取Uri
并将其写入我的缓存目录中的JPEG
文件时,我想要拼接所有EXIF
我从InputStream
到此JPEG
文件获得的数据是因为一些业务需求(主要是轮换和lat-long)。
我无法使用上面的库找出正确的方法(不是非常精通EXIF
)。任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
对于这类问题,这不是正确的方法。该流已经是JPG,其中包含所有EXIF数据。您只需将流直接复制到应用缓存即可。
类似的东西:
.as-console-wrapper { max-height: 100% !important; top: 0; }
执行此操作后,原始JPG的副本将保存在您的应用本地缓存中,包括其所有EXIF。之后,如果你想要一个Bitmap(在屏幕上显示,应用效果或其他),那么你从JPG副本加载位图。