/**
*
* @param bitmap
* @param orientationDegree 0 - 360 范围
* @return
*/

Bitmap adjustPhotoRotation(Bitmap bitmap, int orientationDegree) {



Matrix matrix = new Matrix();
matrix.setRotate(orientationDegree, (float) bitmap.getWidth() / 2,
(float) bitmap.getHeight() / 2);
float targetX, targetY;
if (orientationDegree == 90) {
targetX = bitmap.getHeight();
targetY = 0;
} else {
targetX = bitmap.getHeight();
targetY = bitmap.getWidth();
}


final float[] values = new float[9];
matrix.getValues(values);


float x1 = values[Matrix.MTRANS_X];
float y1 = values[Matrix.MTRANS_Y];


matrix.postTranslate(targetX - x1, targetY - y1);


Bitmap canvasBitmap = Bitmap.createBitmap(bitmap.getHeight(), bitmap.getWidth(),
Bitmap.Config.ARGB_8888);


Paint paint = new Paint();
Canvas canvas = new Canvas(canvasBitmap);
canvas.drawBitmap(bitmap, matrix, paint);


return canvasBitmap;

}


在bitmap.setbitmap()之前调用。

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 详解 PHP 中的三大经典模式
  2. 宿主机nginx与docker的PHP搭配使用
  3. PHP浮点精度问题
  4. PHP变量的初始化以及赋值方式介绍
  5. PHP序列化和反序列化语法差异问题
  6. PHP 编写基本的 Socket 程序
  7. 如何直接访问php实例对象的private属性
  8. 用PHP+Redis实现延迟任务 实现自动取消订
  9. 关于php访问控制的介绍
  10. 解决php使用支付宝SDK报错问题