如何知道图像的方向,无论是肖像还是风景?

时间:2018-03-11 18:46:25

标签: android

我知道这是一个老问题,可以在很多地方找到,但我仍然无法找到解决方案..

我想要的是,如果我使用手机的相机拍摄图像或从图库中选择图像,它应该告诉我图像的方向或精确的高度和宽度,以便我可以决定方向。

到目前为止我使用stackoverflow尝试的是: -

 ExifInterface exif = null;
        try {
            exif = new ExifInterface(URI);
        } catch (IOException e) {
            e.printStackTrace();
        }
        int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,
                ExifInterface.ORIENTATION_UNDEFINED);

但问题是,当使用相机拍摄图像时,它分别为肖像和风景提供6和1。如果从画廊中挑选图像,它会给我0.所以我无法确定图像是风景还是肖像。

先谢谢

1 个答案:

答案 0 :(得分:1)

不要求图像具有EXIF标签,更不用说告诉您拍摄图像的相机的方向。毕竟,并非所有图像都来自相机,并非所有图像类型都有EXIF标签。

作为后备,您可以使用BitmapFactory。将BitmapFactory.Options传递到所需的decode...()方法,您可以在选项中将inJustDecodeBounds设置为true。这不会解码整个图像,但它会解码足以确定高度和宽度等内容。然后,如果高度大于宽度,则将图像视为纵向。有关此技术的更多信息,请参阅the documentation