当前位置: 首页 > news >正文

Android旋转视频工具类,Android图片旋转工具类

import android.graphics.Bitmap;

import android.graphics.Matrix;

import android.media.ExifInterface;

import java.io.IOException;

/**

* Created by pengkv on 15/12/2.

* 图片旋转工具类

*/

public class ImageRotateUtil {

/**

* 读取图片的旋转的角度

*

* @param path 图片绝对路径

* @return 图片的旋转角度

*/

public static 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) {

e.printStackTrace();

//当内存溢出时,利用递归进行重新旋转

while (returnBm == null) {

System.gc();

System.runFinalization();

returnBm = rotateBitmapByDegree(bm, degree);

}

}

if (returnBm == null) {

returnBm = bm;

}

if (bm != returnBm) {

bm.recycle();

}

return returnBm;

}

}

相关文章:

  • android zip4j说明文件,Android Zip4J 使用笔记
  • android视频贴纸第三方,短视频中接入视频贴纸SDK是用户真正想要的吗
  • Nexus9安装android9,Nexus 9支持扩展卡吗?Nexus 9支持多大的储存卡?
  • iphone6安装android,在iPhone里装了真 Android系统 这事情已经很神奇了
  • 常用英语高频词汇android,英语常用高频词汇
  • android aidl通信,Android的AIDL通信机制
  • android游戏人物png,PNG现金游戏世纪警匪H5
  • 鸿蒙系统吹了多少年了还没出,实话实说,在鸿蒙系统上,余承东吹了几次牛都没实现...
  • 微信html5切水果游戏,推荐这3个切水果的小游戏,打开微信小程序试试吧!
  • html时间选择器 不输入,HTML5日期选择器是否有任何样式选项?
  • html+scss编译css,尝试将所有scss文件编译成一个css文件
  • html4概念,HTML与XHTML、以及HTML4与HTML5标签之间的区别简介
  • 红米7pro支持html不,可以畅快的刷机了,红米Note 7 Pro等机型适配 TWRP
  • casio学生用计算机怎么显示数字,CASIO学生用计算机显示频右上角上出现FIX 只需教我按键就行了...
  • 逻辑与计算机科学之间有什么联系,数学、逻辑与计算机科学的关系.doc