【问题标题】:how to apply EXIF orientation for images as urls in android如何将图像的 EXIF 方向应用为 android 中的 url
【发布时间】:2012-10-29 10:35:15
【问题描述】:

我正在处理我的应用程序中的相机图像,这些图像实际上是作为 urls 获取的。相机应用程序处于纵向模式。所以图像有时会左旋转或右旋转。我知道我们可以使用 EXIF 来从图库中获取正常的图像方向,在那里我们可以检查exif值并进行适当的更改。基本上这是exif的代码

ExifInterface exif = new ExifInterface("filepath");
exif.getAttribute(ExifInterface.TAG_ORIENTATION);

所以我的问题是我的文件路径是什么,是 url 本身还是我应该为此创建一个文件.. 任何帮助将不胜感激....

【问题讨论】:

    标签: android camera exif


    【解决方案1】:

    首先,你必须在 onActiviryResult 中获取 Uri,就像这里 Get image Uri in onActivityResult after taking photo?
    然后,当您拥有 Uri 时,您可以获得如下文件路径: 字符串文件路径 = getRealPathFromURI(someUri);

    public String getRealPathFromURI(Uri contentUri) {
        String res = null;
        String[] proj = { MediaStore.Images.Media.DATA };
        Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
        if(cursor != null && cursor.moveToFirst()){;
           int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
           res = cursor.getString(column_index);
        }
        cursor.close();
        return res;
    }
    


    然后,如果文件路径不为空且不为空,则可以获取 EXIF 数据,检查它并在需要时旋转图像。
    希望它会有所帮助。

    【讨论】:

    • 如何应用EXIF方向?
    • 你必须得到方向,比如: int pictureOrientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);然后你必须检查它: if (pictureOrientation == ExifInterface.ORIENTATION_ROTATE_180){ ... 在这里做你的旋转代码} 你还必须检查其他 ExifInterface.ORIENTATION_* 参数。
    • 好的,谢谢回复
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多