Android图片与旋转
2015-06-19 13:14
681 查看
转自:http://blog.csdn.net/berber78/article/details/39778181
拍照后的照片有时被系统旋转,纠正步骤如下:
1.先读取图片文件被旋转的角度:
[java] view
plaincopy
/**
* 通过ExifInterface类读取图片文件的被旋转角度
* @param path : 图片文件的路径
* @return 图片文件的被旋转角度
*/
public static int readPicDegree(String path) {
int degree = 0;
// 读取图片文件信息的类ExifInterface
ExifInterface exif = null;
try {
exif = new ExifInterface(path);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (exif != null) {
int orientation = exif.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;
}
}
return degree;
}
2.再将上述角度作为参数,传递给下面函数纠正:
[java] view
plaincopy
/**
* 将图片纠正到正确方向
*
* @param degree : 图片被系统旋转的角度
* @param bitmap : 需纠正方向的图片
* @return 纠向后的图片
*/
public static Bitmap rotateBitmap(int degree, Bitmap bitmap) {
Matrix matrix = new Matrix();
matrix.postRotate(degree);
Bitmap bm = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
bitmap.getHeight(), matrix, true);
return bm;
}
拍照后的照片有时被系统旋转,纠正步骤如下:
1.先读取图片文件被旋转的角度:
[java] view
plaincopy
/**
* 通过ExifInterface类读取图片文件的被旋转角度
* @param path : 图片文件的路径
* @return 图片文件的被旋转角度
*/
public static int readPicDegree(String path) {
int degree = 0;
// 读取图片文件信息的类ExifInterface
ExifInterface exif = null;
try {
exif = new ExifInterface(path);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (exif != null) {
int orientation = exif.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;
}
}
return degree;
}
2.再将上述角度作为参数,传递给下面函数纠正:
[java] view
plaincopy
/**
* 将图片纠正到正确方向
*
* @param degree : 图片被系统旋转的角度
* @param bitmap : 需纠正方向的图片
* @return 纠向后的图片
*/
public static Bitmap rotateBitmap(int degree, Bitmap bitmap) {
Matrix matrix = new Matrix();
matrix.postRotate(degree);
Bitmap bm = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
bitmap.getHeight(), matrix, true);
return bm;
}
相关文章推荐
- AndroidDevTools收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材
- Android版本和API Level对应关系
- android 三种定位方式
- 我的Android Studio习惯
- android 仿google play效果,ListView/GridView下拉刷新,上拉加载更多,自动加载异步请求数据以及分页数据
- 解决Android中Handler警告、SimpleDateFormat警告、"String".toUpperCase()警告
- Android使用 LruCache 缓存图片
- Android 中 有趣味的GridView
- 精确监听 Android ListView 滑动到底部
- android.graphics.Camera实现图像的旋转、缩放
- Android 实时视频采集—Cameara预览采集
- Android中在控件上显示倒计时
- Android系统时间制式的获取(24钟头制式/12小时制式)及UTC与本地时间的转换
- 【PullToRefresh 系列基本用法】 Android装上拉下拉刷新控制具体的解释
- TabHost页和子Activity之间的通讯
- BitMap、Drawable、inputStream及byte[] 互转
- Android中获得上下文的静态方法
- [Android Studio 权威教程]AS构建系统-Gradle
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- android 还原短信