在我的应用程序中,我有一个int数组,它通过调用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数组进行旋转,通过循环遍历数组中的所有元素并应用某种算法,以及这是否比矩阵更有效。
谢谢!
答案 0 :(得分:1)
可以不使用画布旋转
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);
}