三星手机照相或选择图片,图片旋转截屏图片不旋转问题

来源:互联网 发布:matlab高维数据可视化 编辑:程序博客网 时间:2024/03/29 13:27

只需要两个方法

第一个方法获取旋转的角度

/** * 读取图片的旋转的角度 * * @param path *            图片绝对路径 * @return 图片的旋转角度 */private int getBitmapDegree(String path) {    int degree = 0;    try {        // 从指定路径下读取图片,并获取其EXIF信息        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;}
转载:http://www.cnblogs.com/zmc/p/4022902.html

0 0
原创粉丝点击