我知道这是一个老问题,可以在很多地方找到,但我仍然无法找到解决方案..
我想要的是,如果我使用手机的相机拍摄图像或从图库中选择图像,它应该告诉我图像的方向或精确的高度和宽度,以便我可以决定方向。
到目前为止我使用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.所以我无法确定图像是风景还是肖像。
先谢谢
答案 0 :(得分:1)
不要求图像具有EXIF标签,更不用说告诉您拍摄图像的相机的方向。毕竟,并非所有图像都来自相机,并非所有图像类型都有EXIF标签。
作为后备,您可以使用BitmapFactory
。将BitmapFactory.Options
传递到所需的decode...()
方法,您可以在选项中将inJustDecodeBounds
设置为true
。这不会解码整个图像,但它会解码足以确定高度和宽度等内容。然后,如果高度大于宽度,则将图像视为纵向。有关此技术的更多信息,请参阅the documentation。