【问题标题】:How to know the orientation of image, whether portrait or landscape?如何知道图像的方向,是纵向还是横向?
【发布时间】:2018-03-11 18:46:24
【问题描述】:

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

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

到目前为止,我使用 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。所以我无法确定图像是横向还是纵向。

提前致谢

【问题讨论】:

    标签: android


    【解决方案1】:

    图像不需要带有 EXIF 标签,更不用说告诉您拍摄图像的相机方向的标签了。毕竟不是所有的图片都来自相机,也不是所有的图片类型都有EXIF标签。

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

    【讨论】:

    • 感谢您的快速回复。肯定会调查这个。印象深刻,你这么快就回复了:)
    猜你喜欢
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多