Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用数组旋转位图_Java_Android_Bitmap_Out Of Memory_Pixels - Fatal编程技术网

Java 使用数组旋转位图

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

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


谢谢

可以在不使用画布的情况下旋转

 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”?是否引发此异常?是的,有时在旋转较大的位图时!