完美解决Android三星手机从图库选择照片旋转问题
完美解决Android三星手机从图库选择照片旋转问题
完美解决Android三星手机从图库选择照片旋转问题
更新日期:2016年4月11日 15点38分46秒,发布者:Hankkin。
本文旨在为大家详细解析并成功解决三星Android手机在图库中选取照片时遇到的旋转难题,提供了一种切实可行的解决方案。这是一个非常实用的技巧分享,对于那些对此感兴趣的朋友们来说,不妨一探究竟。
近期,我成功解决了困扰我许久的难题——三星手机拍照时图片自动旋转的问题。在项目开发中,我们设置了图片上传功能三星手机照片旋转90度三星手机照片旋转90度,这就不可避免地涉及到拍照环节。从相册中选取图片时,其他品牌的手机都能正常工作完美解决Android三星手机从图库选择照片旋转问题,唯独三星手机在拍照后,照片会自动旋转。当你按照路径找到这些图片时完美解决Android三星手机从图库选择照片旋转问题,会发现它们已经被旋转过了。幸运的是,我终于找到了解决这个问题的方法。通过图片的路径,我们能够获取照片EXIF(可交换图像文件)数据中的旋转角度信息;同时,关于这个EXIF的详细内容,您可以参考那位大牛所撰写的文章。
Android 下的EXIF
经过调试三星手机照片旋转90度,我们能够明确观察到,三星手机的拍照照片旋转了90度,而其他品牌的手机照片则保持原始的0度角度。
看一下代码:
/** * 读取照片exif信息中的旋转角度 * @param path 照片路径 * @return角度 */ int degree = 0; try { 通过指定路径,创建了一个名为exifInterface的ExifInterface对象。 switch (orientation) { 当遇到ExifInterface中的ORIENTATION_ROTATE_90属性时: degree = 90; break; 若遇到ExifInterface中的ORIENTATION_ROTATE_180情况: degree = 180; break; 当遇到ExifInterface中的ORIENTATION_ROTATE_270属性时: degree = 270; break; } } catch (IOException e) { e.printStackTrace(); } return degree; }
那么我们只需要根据旋转角度将图片旋转过来就OK了
Matrix matrix = new Matrix(); matrix执行+90度的旋转操作; /*进行90度的翻转处理*/ int width = img.getWidth(); int height =img.getHeight(); Bitmap对象img是通过调用createBitmap方法创建的,该方法接收img、起始坐标(0,0)、宽度、高度、变换矩阵matrix以及一个布尔值true作为参数。 return img; }
轻松解决了,是不是很完美?