为什么本机相机在保存捕获的图像后旋转

时间:2015-06-10 15:08:53

标签: android

我想启动原生Android相机并将图像保存在指定位置。问题是在我点击捕获照片后,预览会显示保存/放弃选项。单击“保存”后,本机摄像机将以横向方式旋转,并且不会显示捕获的图像。

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.setPackage(defaultCamera);
            File f = new File(android.os.Environment.getExternalStorageDirectory(), "temp.jpg");
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
            startActivityForResult(intent, 1); 

2 个答案:

答案 0 :(得分:0)

这是因为重新创建了活动,因此数据不再存在。您无法控制是否会发生这种情况。你在onActivityResult上捕获了图片吗?如果是这样,您可以尝试在保留的片段中保存路径。

答案 1 :(得分:0)

有些设备会在保存之前旋转图像。

查看照片的exif数据,特别注意

ExifInterface exifInterf = new ExifInterface(SourceFileName);
int exifOrientation = exifInterf.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

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

Matrix matrix = new Matrix();
matrix.postRotate(rotate);
bitmap = Bitmap.createBitmap(bitmap , 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);