保存相机图像android ....他们旋转了90度

时间:2012-12-09 20:11:15

标签: android android-intent android-camera

我正在使用commonware的相机样本来尝试创建一个拍照的Android应用程序。预览显示相机旋转90度,我已通过应用:

更正了
camera.setDisplayOrientation(90);

然而,图像仍然以另一种方式旋转90度。我如何调整它以便在保存图像时将它们保存在与观看者相同的“方面”中?

请指教, TIA

1 个答案:

答案 0 :(得分:0)

根据this post,这仅在某些设备中发生,并且取决于制造商。

我设法通过检测设备的方向角并相应地应用旋转来解决此问题,如下所示:

            ExifInterface exitInterface = new ExifInterface(imagePath);

            int orientation = exitInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
            int degree = 0;

            switch (orientation){
            case ExifInterface.ORIENTATION_ROTATE_90:
                degree = 90;
                break;
            case ExifInterface.ORIENTATION_ROTATE_180:
                degree = 180;
                break;
            case ExifInterface.ORIENTATION_ROTATE_270:
                degree = 270;
                break;
            }

然后我使用自定义方法旋转我的位图:

    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;
}