Android之图片旋转
2016-04-18 09:35
381 查看
我们在开发过程中,利用app通过API去调用系统相机拍照的时候,不同的机型有时候拍出来的图片角度不对,被旋转了90°或者180°。例如三星的S4,在调用其相机拍照的时候,拍出来的照片就旋转了90℃或者是270℃。这不是我们想要的,遇到这种情况不得不手动将拍出来的照片旋转一定的角度。下面就大家提供关于图片旋转的方法。
图片旋转算法:
图片旋转算法:
/** * 读取图像的旋转度 * @param path * @return */ public static int readBitmapDegree(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; } /** * 将图片按照某个角度进行旋转 * * @param bm * 需要旋转的图片 * @param degree * 旋转角度 * @return 旋转后的图片 */ public static Bitmap rotateBitmapByDegree(Bitmap bm, int degree) { Bitmap returnBm = null; // 根据旋转角度,生成旋转矩阵 Matrix matrix = new Matrix(); matrix.postRotate(degree); try { // 将原始图片按照旋转矩阵进行旋转,并得到新的图片 returnBm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true); } catch (OutOfMemoryError e) { } if (returnBm == null) { returnBm = bm; } if (bm != returnBm) { bm.recycle(); } return returnBm; }
相关文章推荐
- android插件开发——加载插件
- 关于android studio 出现Error:Execution failed for task ':app:buildInfoDebugLoader'.的解决办法...
- Android自定义View之高仿QQ健康
- OnClick的三种方式
- Android之常见的图片压缩算法
- Android创建应用快捷方式(ShortCut)的有效方式
- Android Studido下的应用性能优化总结--布局优化
- android开发之&使用viewFlipper实现轮播图,超级简单
- Android framework回想(2) sp 和 wp sp对象
- Android程序开发之手机APP创建桌面快捷方式
- kernel logo到开机动画之间闪现黑屏(android 5.X)
- Android Apk打包过程概述:Android是如何打包apk的
- Android 热修补方案(AndFix)
- Android之智能问答机器人
- android pdf 阅读器开发, pdf demo, pdf第三方控件
- Mac Android Genymotion unable create virtual device
- Android studion下载GsonFormat插件
- Android开发周刊 第二期
- Android发送短信界面
- 第七周Android学习笔记