我在使用各种设备拍摄相机意图捕获图像时遇到了无穷无尽的问题,对于某些设备,这里提到的ExifInterface和使用contentresolver都不能解决我的问题:
Why does an image captured using camera intent gets rotated on some devices on Android?
对于某些设备中的ExifInterface,它总是返回ExifInterface.undefined (零)。至于内容解析器,当我查询方向时,我也得到了零,这有时也是不正确的。
我在这里特别使用了user2832184 answer:
How can i find the orientation of a picture taken with Intent MediaStore.ACTION_IMAGE_CAPTURE?
是否有其他建议的解决方案?
我需要本地相机应用程序的完整功能,所以我不能切换到相机api和从头开始构建一切。
我也不介意使用第三方解决方案来解决这个问题。
发布于 2016-05-17 23:57:12
如果图像缺少方向标头,您对此无能为力。某些设备(例如HTC )固件混乱,无法在M7中编码方向标头。但是,其他设备将对图像进行正确的编码,并且图像恰好处于正确的方向,因此不需要标题。除了通过给您带来麻烦的设备的硬编码列表之外,没有什么好的方法可以通过编程来区分这些情况。
即使对于那些硬编码的设备,您也有一个问题:从技术上讲,您不知道正确的方向是什么。用户可能已经从您的应用程序进入相机应用程序,旋转设备,拍摄照片,将设备旋转回其原始方向,然后才返回到您的应用程序。
您的选择是:
这些都不是完美的解决方案。
发布于 2018-03-13 23:15:56
(获取EXIF方向属性并相应地旋转图像)
发布于 2020-06-04 02:24:21
您可以使用Glide库:
Glide.with(this).load(image_uri).into(productIconIv);其中image_uri是您的图像URI,productIconIv是一个ImageView
https://stackoverflow.com/questions/37280213
复制相似问题