Android开发拍照图片旋转
2013-10-29 10:14
399 查看
在做照相机图片相关操作的时候,由于android手机的适配原因,不同手机上出发的相机操作可能在细节上有很多不同,例如摄像头拍照的角度旋转了,使得获取到的图片也是旋转后的,再比如某些相机的图片像素太高了,对图片数据进行操作的时候造成内存不足等。下面就对相机拍摄时的图像被旋转的问题进行一些实际的解决方案:
问题:由于摄像头拍照 是竖屏,显示的时候需要旋转了 90 度。也就是说显示的是 旋转90度后的 预览 图片?怎么处理...
有一种方法是在说在拍照的时候将内容显示设定为横屏显示,
还有在onCreate函数加入
这样拍出来的图片就不能被旋转了。说实话,这种方式不具有通用型,而且很不灵活,不能适配所有手机。所以不建议,但是可以作为一个想法。
其实真正能解决这种问题的方法是找到相机在拍照后得到的原图和实际显示的图片的旋转角度,然后我们再通过Matrix对图片进行旋转就Ok了。
那么我们怎样获取相机拍摄的原图和实际显示图片的旋转角度呢?在网上找到了这种方法,经过验证,着实可行。
得到原图和实际显示的图片的旋转角度后,我们再通过对原图进行旋转degree就行了,这个旋转方法可以通过Matrix实现。
问题:由于摄像头拍照 是竖屏,显示的时候需要旋转了 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实现。
相关文章推荐
- Android开发之获取相册照片和获取拍照照片三之 图片旋转
- Android开发之基础----------多媒体图片加载、拍照和摄像(一)
- [置顶] 【Android开发技巧】 关于Webview拍照或从相册上传图片处理总结
- android 图片压缩,自动旋转保存,查看照片信息,拍照设备类型等
- Android拍照后获得的图片旋转90度问题
- android开发步步为营之83:android图片处理技术之二(通过Matrix移动缩放旋转错切)
- Android相机开发(一)之预览拍照查看图片基本功能的实现
- android 手机拍照上传项目的开发-----JAVA利用socket传图片给linux服务器
- android 拍照遇到图片旋转,照片、相机未找到的问题解决
- 关于android中调用系统拍照,返回图片是旋转90度
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- Android 三星手机拍照图片旋转处理
- 解决android有的手机拍照后上传图片被旋转的问题
- 解决android有的手机拍照后上传图片被旋转的问题
- IOS开发 两、三个界面相互传值,类似android的onActivityResult(拍照上传、预览图片、点击查看、删除)
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- Android摄像头开发:拍照后添加相框,融合相框和图片为一副 图片
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- 关于部分android手机连拍模式,手机拍照上传的图片旋转了90度的c#解决方案
- Android开发:相册读取、拍照、图片裁剪和图片上传服务器等功能的实现