我需要弄清楚如何从位图获取方向。事情是 - 图像并不总是出现在设备上,所以我不能使用ExifInterface来获取方向信息。 不知怎的,它总是在横向上显示位图,而长度和宽度属性对我没有多大帮助。
有没有人知道如何在没有ExifInterface的情况下完成此任务?
我知道我可以将方向存储为数据库中的属性,但如果有另一种方式 - id更喜欢。
提前致谢
编辑: 我应该添加 - 位图作为字节数组从站点下载,因此在实际决定下载之前,它可以作为预览呈现给设备上的最终用户。希望这更有意义
答案 0 :(得分:2)
您还可以使用我的metadata-extractor库,它将从多种图像类型中读取大量元数据,并且非常有效。
^HH
答案 1 :(得分:1)
如果您有JPEG数据,可以尝试读取EXIF标题。您的选择是:
使用the ExifInterface
from the Android SDK,但这需要您将JPEG数据存入文件
使用其他更灵活的EXIF解析代码,例如this stuff from the AOSP Mms app,可以处理流和byte[]
(请参阅该目录中的ExifInterface
及其{ {1}}方法)
在您的情况下,您可能会遇到一些问题:
预览可能缺少EXIF标题,具体取决于预览图像的创建方式。如果是这种情况,并且您控制预览创建过程,则可以修复该服务器端。
这仅适用于预览图像为JPEG的情况。如果它们采用其他格式(例如,PNG),则EXIF标头将丢失。同样,如果是这种情况,您可以解决此服务器端问题,例如让预览生成器根据原始文件的EXIF标题正确旋转图像。
如果您没有readExif()
EXIF标题,并且您无法控制服务器,那么您将注定失败。