美文网首页
Android调用系统相机拍照后获取照片被旋转了90度的解决方法

Android调用系统相机拍照后获取照片被旋转了90度的解决方法

作者: 小凯晨风 | 来源:发表于2017-07-14 11:38 被阅读0次

    解决办法:

    (得到的bmpOk就是正常的图片)

    int degree = ImageUtil.readPictureDegree(imageUri.getPath());

    Bitmap bmpOk = ImageUtil.rotateToDegrees(bmp, degree);

    /**

    * 读取照片exif信息中的旋转角度

    *

    * @param path

    *            照片路径

    * @return角度

    */

    public 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 tmpBitmap

    * @param degrees

    * @return

    */

    public Bitmap rotateToDegrees(Bitmap tmpBitmap, float degrees) {

    Matrix matrix = new Matrix();

    matrix.reset();

    matrix.setRotate(degrees);

    return tmpBitmap = Bitmap.createBitmap(tmpBitmap, 0, 0, tmpBitmap.getWidth(), tmpBitmap.getHeight(), matrix,

    true);

    }

    相关文章

      网友评论

          本文标题:Android调用系统相机拍照后获取照片被旋转了90度的解决方法

          本文链接:https://www.haomeiwen.com/subject/qwmnhxtx.html