繁体   English   中英

通过使用数组旋转位图

[英]Rotate bitmap by using a array

在我的应用程序中,我有一个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);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM