2015-06-19 26 views
0

我使用Android的作物https://github.com/jdamcd/android-crop,以方形的裁剪从相机onActivityResult拍摄图像的结果图像。问题在于,由于某种原因,该库难以预测地旋转图像。的Android库 - Android的作物旋转拍摄

下面是创建,我handiling onActivityResult输出图书馆的活动 - CropImageActivity

剪切的结果只是在ImageView中加载毕加索。图像文件临时存储在Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)中,该文件以EXTRA_OUTPUT的形式提供,用于捕获图像,然后剪切并加载到ImageVIew中。

的问题是,对于一些Android手机上的图像正确地旋转,但对于其他人,他们都没有。 Nexus 5的是好的,的Xperia Z不是等等...

我正在寻找一种简单的方法,以确保图像正确旋转。 在此先感谢您的帮助!

+0

是什么让你觉得这是这个库的错,而不是你使用的设备或相机应用程序的错误?您正在检查EXIF标题以查看是否包含定位标题? – CommonsWare

+0

跳过剪切步骤时,图像的方向正确。 – toshkinl

+0

结帐[Android-Image-Cropper](https://github.com/ArthurHub/Android-Image-Cropper)库。 – Arthur

回答

0

经过一番斗争,我找到了答案。该库正在从MediaStore中提取exif数据,但我不在那里存储我的临时文件。我脑海中有两种可能的解决方案。第一种是在裁剪之前阅读exif方向,并在裁剪之后设置方向属性。另一种方法是将您的文件保存到媒体商店。

CropUtil.copyExifRotation(CropUtil.getFromMediaUri(this, this.getContentResolver(), 
this.sourceUri), CropUtil.getFromMediaUri(this, this.getContentResolver(), this.saveUri)); 
     this.setResultUri(this.saveUri);