0

在我的应用程序中,我有一个 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 数组进行旋转,通过循环遍历数组中的所有元素并应用某种算法,以及这是否比矩阵更节省内存。

谢谢!

4

1 回答 1

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);
    }
于 2013-07-05T09:47:52.347 回答