Java 使用数组旋转位图
在我的应用程序中,我有一个int数组,通过调用:Java 使用数组旋转位图,java,android,bitmap,out-of-memory,pixels,Java,Android,Bitmap,Out Of Memory,Pixels,在我的应用程序中,我有一个int数组,通过调用:bitmap.getPixels(intArr…) 我想一个方法来旋转这个图像等90度。我知道这可以用矩阵和画布来完成,但我也听说这种方法内存效率很低。像这个例子: Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, config); Canvas canvas = new Canvas(targetBitmap); Matrix matrix = new Mat
bitmap.getPixels(intArr…)
我想一个方法来旋转这个图像等90度。我知道这可以用矩阵和画布来完成,但我也听说这种方法内存效率很低。像这个例子:
Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, config);
Canvas canvas = new Canvas(targetBitmap);
Matrix matrix = new Matrix();
matrix.setRotate(mRotation,source.getWidth()/2,source.getHeight()/2);
canvas.drawBitmap(source, matrix, new Paint());
我想知道是否/如何通过int数组进行旋转,通过循环数组中的所有元素并应用某种算法,以及这是否比矩阵更节省内存
谢谢 可以在不使用画布的情况下旋转
public static Bitmap rotate(Bitmap src, float degree) {
// create new matrix
Matrix matrix = new Matrix();
// setup rotation degree
matrix.postRotate(degree);
// return new bitmap rotated using matrix
return Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
}
使用矩阵(或Canvas.rotate),这是最好的方法为什么要添加标记“outofmemoryexception”?是否引发此异常?是的,有时在旋转较大的位图时!