Android 根据角度旋转图片,当时是为了适配 三星手机
来源:互联网 发布:穿西装要注意什么知乎 编辑:程序博客网 时间:2024/04/30 15:39
在Android开发过程中,几乎每个应用都会或多或少的涉及到对图片的处理。经常遇到的一个情况就是,取得的图片是横着的,而实际需要的图片是正着的,也就是竖着的。这里就涉及到对图片横坚情况的判断,也就是图片的当前的角度。然后根据角度来纠正,得到想要的图片。
在Android的源代码里提供了一个专门读写图片信息的类ExifInterface,官方给出的注释为:This is a class for reading and writing Exif tags in a JPEG file ,可见ExifInterface是专门用来读写JPEG图片文件Exif信息的类。
Exif信息里面就包括了角度,GPS经纬度,白平衡,闪光灯等信息。ExifInterface的用法相对简单,只有一个带参的构造方法,将图片文件地址传过去就可以了。类里提供了getAttribute方法来取得各种属性,当得也可以用setAttribute方法来为已存在的图片设置或修改其本来属性。
下面贴上代码:
- /**
- * 读取图片属性:旋转的角度
- * @param path 图片绝对路径
- * @return degree旋转的角度
- */
- 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;
- }
- return degree;
- }
得到bitmap:
- Bitmap bmp =BitmapFactory.decodeFile(imageFilePath);
- /**
- * 旋转图片,使图片保持正确的方向。
- * @param bitmap 原始图片
- * @param degrees 原始图片的角度
- * @return Bitmap 旋转后的图片
- */
- public static Bitmap rotateBitmap(Bitmap bitmap, int degrees) {
- if (degrees == 0 || null == bitmap) {
- return bitmap;
- }
- Matrix matrix = new Matrix();
- matrix.setRotate(degrees, bitmap.getWidth() / 2, bitmap.getHeight() / 2);
- Bitmap bmp = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
- if (null != bitmap) {
- bitmap.recycle();
- }
- return bmp;
- }
0 0
- Android 根据角度旋转图片,当时是为了适配 三星手机
- Android 根据角度旋转图片
- Android 根据角度旋转图片
- Android解决三星手机图片旋转问题
- Android 三星手机拍照图片旋转处理
- Android 根据角度旋转图片 ExifInterface
- Android 根据角度旋转图片 ExifInterface
- 三星手机照相 角度旋转问题
- 三星手机拍照后显示图片角度旋转问题的解决方法
- 解决三星手机拍照后,图片旋转。
- 三星手机选择图片旋转问题
- <android>头像上传,打开相册 —— 图片压缩——上传成功 (附三星手机适配图片旋转问题)
- Android时时监测手机的旋转角度 根据旋转角度确定在什么角度加载竖屏布局 在什么时候加载横屏布局
- android调用系统相机的方法,并且解决三星手机遇到的问题,图片旋转、压缩
- Android解决三星手机拍照图片调用时逆时针旋转90度问题
- android解决有些手机拍照图片旋转了角度的问题
- 三星手机拍照,图片旋转问题的解决
- android获取图片的旋转角度
- js提取url参数的几种方法。(搜集)
- ubuntu忘记密码解决方法 authentication token manipulation erro
- JBPM4.4 集成SSH Jar包说明!
- 楼宇自控学习笔记
- 动态规划:矩阵链的乘法
- Android 根据角度旋转图片,当时是为了适配 三星手机
- 在linux环境下编译运行OpenCV程序的两种方法
- 初识Dubbo 系列之前传1-Dubbo产生的背景
- 杭电1233最小生成树kruskal
- 2015年百度春节招聘 java后台开发题目
- 第一次使用 Ubuntu 14.04,以及安卓开发环境搭建
- eclipse调试java程序的九个技巧
- 设计模式 简单工厂 c++实现
- 对弈类游戏的人工智能(2)--学习算法