gpt4 book ai didi

android - 来自画廊/相机 Intent 的图片方向

转载 作者:IT老高 更新时间:2023-10-28 21:46:33 25 4
gpt4 key购买 nike

我正在从相机/图库 Intent 获取图片到我的应用程序。在我从 Intent/Uri 读取的许多手机图片中,已经旋转到正确的方向。比如N1,Legend,Desire就是这样。

但是在某些手机(例如 Milestone1、GalaxyS)上,无论以哪种方式拍摄,图片总是更多地是横向的。这意味着在我的应用程序中,肖像图片以错误的方式呈现给用户。我试图读取图片的 EXIF 信息,但方向标签始终为 0。必须有一种方法可以找出图片的正确方向,因为在 Milestone1 中,图库应用程序正确显示了纵向图片。

在向用户展示之前,我如何知道是否需要自己旋转图片?

感谢您的帮助!

最佳答案

Florian 答案适用于图库图片。

以下代码适用于捕获的图像,尚未尝试使用画廊图像,但我相信它应该可以工作。希望这对任何人都有帮助。

代码:

public static int getCameraPhotoOrientation(Context context, Uri imageUri, String imagePath){
int rotate = 0;
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.v(TAG, "Exif orientation: " + orientation);
} catch (Exception e) {
e.printStackTrace();
}
return rotate;
}

编辑:从评论中可以看出,有些设备不支持 Exif 信息,没有检查过,但我认为 HTC 不支持。请务必检查哪些设备并创建替代方案。

关于android - 来自画廊/相机 Intent 的图片方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com