gpt4 book ai didi

java - 是否可以让 BitmapFactory.decodeFile() 尊重 EXIF?

转载 作者:行者123 更新时间:2023-11-29 07:29:06 27 4
gpt4 key购买 nike

在我的测试中,BitmapFactory.decodeFile() 创建的 Bitmap 不遵循 EXIF header 。

例如,当我调用 Bitmap.getWidth() 时,设备拍摄的肖像图像不会根据相机方向旋转实际像素数据,而是将其存储在 EXIF header 中和 Bitmap.getHeight(),它们返回不正确的值(高度为宽度,反之亦然)。

有没有办法让 BitmapFactory.decodeFile() 遵守 EXIF 并生成正确的 Bitmap

如果不是,推荐的处理此问题的模式是什么?

没有经验丰富的 Android 开发人员的建议,我看到的唯一方法是预处理拍摄的图像(加载、根据 EXIF 旋转并保存)。但除了巨大的处理开销之外,对于大相机分辨率,这可能会导致 OutOfMemoryException(在无法通过使用 BitmapFactory.Options.inSampleSize 来降低质量的情况下)加载缩小图像)。

最佳答案

您现在可以使用 Glide 做到这一点。请参阅此处的“后台线程”部分:

https://bumptech.github.io/glide/doc/getting-started.html

Bitmap bitmap = Glide.with(context).asBitmap().load(new File(fileName)).skipMemoryCache(true).submit().get();

Glide 考虑了 EXIF。您需要在后台线程上加载它。我使用的是 Glide 4.9.0

关于java - 是否可以让 BitmapFactory.decodeFile() 尊重 EXIF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45552108/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com