android:解决小米手机相机返回照片旋转问题

您所在的位置:网站首页 小米10手机拍的照片 android:解决小米手机相机返回照片旋转问题

android:解决小米手机相机返回照片旋转问题

2023-07-26 04:46| 来源: 网络整理| 查看: 265

背景

公司有一功能需要调用相机或者相册,拍摄或者选择照片先做展示然后上传到服务器。但是提交测试的时候,测试小姐姐给我提了一个bug,描述为拍照返回的照片向左旋转90度展示。由于道长的测试机为华为的,当时并没有发现问题,后来测试小姐姐反馈仅小米手机相机会出现照片旋转问题。-_-! 额……好吧。

解决方法

解决方法很简单,获取每次相机返回的照片,如果旋转的话就再次旋转回来,代码如下:

读取照片的角度 /** * 读取照片旋转角度 * * @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; } 旋转图片 /** * 旋转图片 * @param angle 被旋转角度 * @param bitmap 图片对象 * @return 旋转后的图片 */ public static Bitmap rotaingImageView(int angle, Bitmap bitmap) { Bitmap returnBm = null; // 根据旋转角度,生成旋转矩阵 Matrix matrix = new Matrix(); matrix.postRotate(angle); try { // 将原始图片按照旋转矩阵进行旋转,并得到新的图片 returnBm = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); } catch (OutOfMemoryError e) { } if (returnBm == null) { returnBm = bitmap; } if (bitmap != returnBm) { bitmap.recycle(); } return returnBm; }

大概就这样,希望可以解决小伙伴的问题。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3