Android开发之获取相册照片和获取拍照照片三之 图片旋转
2013-05-23 09:46
856 查看
在做照相机图片相关操作的时候,由于android手机的适配原因,不同手机上出发的相机操作可能在细节上有很多不同,例如摄像头拍照的角度旋转了,使得获取到的图片也是旋转后的,再比如某些相机的图片像素太高了,对图片数据进行操作的时候造成内存不足等。下面就对相机拍摄时的图像被旋转的问题进行一些实际的解决方案:
问题:由于摄像头拍照 是竖屏,显示的时候需要旋转了 90 度。也就是说显示的是 旋转90度后的 预览 图片?怎么处理...
有一种方法是在说在拍照的时候将内容显示设定为横屏显示,
还有在onCreate函数加入
这样拍出来的图片就不能被旋转了。说实话,这种方式不具有通用型,而且很不灵活,不能适配所有手机。所以不建议,但是可以作为一个想法。
其实真正能解决这种问题的方法是找到相机在拍照后得到的原图和实际显示的图片的旋转角度,然后我们再通过Matrix对图片进行旋转就Ok了。
那么我们怎样获取相机拍摄的原图和实际显示图片的旋转角度呢?在网上找到了这种方法,经过验证,着实可行。
参考:http://www.eoeandroid.com/thread-196978-1-1.html
问题:由于摄像头拍照 是竖屏,显示的时候需要旋转了 90 度。也就是说显示的是 旋转90度后的 预览 图片?怎么处理...
有一种方法是在说在拍照的时候将内容显示设定为横屏显示,
<activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="landscape">
还有在onCreate函数加入
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
这样拍出来的图片就不能被旋转了。说实话,这种方式不具有通用型,而且很不灵活,不能适配所有手机。所以不建议,但是可以作为一个想法。
其实真正能解决这种问题的方法是找到相机在拍照后得到的原图和实际显示的图片的旋转角度,然后我们再通过Matrix对图片进行旋转就Ok了。
那么我们怎样获取相机拍摄的原图和实际显示图片的旋转角度呢?在网上找到了这种方法,经过验证,着实可行。
/** * 读取照片exif信息中的旋转角度 * @param path 照片路径 * @return角度 */ public static int readPictureDegree(String path) { int degree = 0; try { ExifInterface exifInterface = new ExifInterface(path); int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_90: degree = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: degree = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: degree = 270; break; } } catch (IOException e) { e.printStackTrace(); } return degree; }得到原图和实际显示的图片的旋转角度后,我们再通过对原图进行旋转degree就行了,这个旋转方法可以通过Matrix实现。
参考:http://www.eoeandroid.com/thread-196978-1-1.html
相关文章推荐
- Android开发之获取相册照片和获取拍照照片
- Android开发之获取相册照片和获取拍照照片
- Android开发之获取相册照片和获取拍照照片二
- Android开发之获取相册照片和获取拍照照片
- Android开发之获取相册照片和获取拍照照片二
- Android开发之获取相册照片和获取拍照照片二
- Android ImageUtils 图片工具类,包括:小米从相册调图像空指针,三星旋转照片,压缩图片,保存Bitmap到本地,获取本地视频的缩略图,毛化玻璃效果,代码以后会更新
- TakePhoto是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库,目前最新版本3.0.0。
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时回到手机桌面,然后才会跳转到当前activity
- Android开发之获取相册照片和获取拍照照片
- Android 开发之获取相册照片和获取拍照照片
- Android开发之获取相册照片和获取拍照照片二
- Android开发,调用相册图片或者调用相机进行拍照获取图片
- Android拍照或相册获取照片上传 (带图片剪裁)
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时回到手机桌面,然后才会跳转到当前activity
- Android开发之获取相册照片和获取拍照照片
- Android-->拍照/相册选择照片(从Uri中获取图片路径)
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时为什么会回到home界面或者到前一个界面,然后才会跳转到当前activity
- Android开发之获取相册照片和获取拍照照片
- 【转】Android开发之获取相册照片和获取拍照照片