在android中旋转保存的位图

pro*_*spk 7 java android bitmap android-image

我正从横向模式的相机保存图像.所以它以横向模式保存,然后我将横向应用于横向模式.我想旋转该图像,然后保存.例如,如果我有这个

在此输入图像描述

我想顺时针旋转90度,然后将其保存到sdcard:

在此输入图像描述

这是如何实现的?

MAC*_*MAC 14

void rotate(float x)
    {
        Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.tedd);

        int width = bitmapOrg.getWidth();

        int height = bitmapOrg.getHeight();


        int newWidth = 200;

        int newHeight  = 200;

        // calculate the scale - in this case = 0.4f

         float scaleWidth = ((float) newWidth) / width;

         float scaleHeight = ((float) newHeight) / height;

         Matrix matrix = new Matrix();

         matrix.postScale(scaleWidth, scaleHeight);
         matrix.postRotate(x);

         Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,width, height, matrix, true);

         iv.setScaleType(ScaleType.CENTER);
         iv.setImageBitmap(resizedBitmap);
    }
Run Code Online (Sandbox Code Playgroud)

  • 小心,也缩小新图像:) (4认同)

Sin*_*hak 5

检查一下

public static Bitmap rotateImage(Bitmap src, float degree) 
{
        // create new matrix
        Matrix matrix = new Matrix();
        // setup rotation degree
        matrix.postRotate(degree);
        Bitmap bmp = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
        return bmp;
}
Run Code Online (Sandbox Code Playgroud)