图像取向来自

时间:2013-09-02 16:09:38

标签: android

有没有办法让你用相机拍摄的照片方向?

我使用下面的方法来恢复我画廊中图像的方向,但如果我用相机拍照则不起作用。

   public static int getImageOrientation(Context context, Uri photoUri) {
    int orientation = -1;
    Cursor cursor = context.getContentResolver().query(photoUri,
            new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, null, null, null);

    if (cursor != null && cursor.getCount() == 1) {
        cursor.moveToFirst();
        orientation = cursor.getInt(0);
    }

    return orientation;
}

1 个答案:

答案 0 :(得分:3)

您可以从以下代码中获取图片的方向:

try {
    context.getContentResolver().notifyChange(imageUri, null);
    File imageFile = new File(imagePath);

    ExifInterface exif = new ExifInterface(imageFile.getAbsolutePath());
    int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

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

    Log.i("RotateImage", "Exif orientation: " + orientation);
    Log.i("RotateImage", "Rotate value: " + rotate);
} catch (Exception e) {
    e.printStackTrace();
}

首先,您必须将捕获的图像保存在SD卡上,然后从保存图像的路径中获取图像Uri。然后将Uri作为imageUri传递给发布的代码。