首页后端开发其他后端知识想要实现Android Bitmap图片两种方案旋转90度怎么做?

想要实现Android Bitmap图片两种方案旋转90度怎么做?

时间2024-03-28 14:06:03发布访客分类其他后端知识浏览259
导读:相信很多人对想要实现Android Bitmap图片两种方案旋转90度怎么做都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 今天小编就为大家分享一篇Android开发图片水平旋转90度方法,角度可以自定义,这里的90...
相信很多人对想要实现Android Bitmap图片两种方案旋转90度怎么做都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助

今天小编就为大家分享一篇Android开发图片水平旋转90度方法,角度可以自定义,这里的90只是举例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。Android两种 旋转Bitmap方法,方法1. 利用Bitmap.createBitmap和方法2. 利用Canvas.drawBitmap。


方法1:

Bitmap adjustPhotoRotation(Bitmap bm, final int orientationDegree) {
    

    Matrix m = new Matrix();
    
    m.setRotate(orientationDegree, (float) bm.getWidth() / 2, (float) bm.getHeight() / 2);


    try {
    
        Bitmap bm1 = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), m, true);
    

        return bm1;


    }
 catch (OutOfMemoryError ex) {

    }
    
    return null;


}


方法2:

Bitmap adjustPhotoRotation(Bitmap bm, final int orientationDegree) {
    

    Matrix m = new Matrix();
    
    m.setRotate(orientationDegree, (float) bm.getWidth() / 2, (float) bm.getHeight() / 2);
    
    float targetX, targetY;

    if (orientationDegree == 90) {
    
        targetX = bm.getHeight();
    
        targetY = 0;

    }
 else {
    
        targetX = bm.getHeight();
    
        targetY = bm.getWidth();

    }
    

    final float[] values = new float[9];
    
    m.getValues(values);
    

    float x1 = values[Matrix.MTRANS_X];
    
    float y1 = values[Matrix.MTRANS_Y];
    

    m.postTranslate(targetX - x1, targetY - y1);
    

    Bitmap bm1 = Bitmap.createBitmap(bm.getHeight(), bm.getWidth(), Bitmap.Config.ARGB_8888);
    

    Paint paint = new Paint();
    
    Canvas canvas = new Canvas(bm1);
    
    canvas.drawBitmap(bm, m, paint);
    


    return bm1;

}
    


性能测试手机,CPU : MTK6575 ,1G Hz、MEM : 512MB、OS : andoid 2.3.7,图片尺寸1632 * 1224,结果:方法1在280 - 350毫秒间, 方法2在110毫秒左右。方法2优于方法1

通过以上内容的阐述,相信大家对想要实现Android Bitmap图片两种方案旋转90度怎么做已经有了进一步的了解,更多bitmap旋转的问题,欢迎关注网络或到官网咨询客服。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 想要实现Android Bitmap图片两种方案旋转90度怎么做?
本文地址: https://pptw.com/jishu/654988.html
安卓动态设置:android elevation设置透明度怎么操作? HTML中文本框的长度如何调整

游客 回复需填写必要信息