我是安卓新手。我正在尝试制作一个带有照片捕捉功能的应用程序。问题是照片旋转不正确。如果我在横向模式下拍摄照片会很好,但在纵向模式下照片旋转会出错。我的问题是:我可以检查照片是否以横向/纵向模式拍摄吗?因为当我在 LogCat 上查看时,我可以看到名为“CameraEngine”的标签,上面写着旋转:0 或 90。如果我可以通过代码获取这种相机信息,那就太棒了。
问问题
4133 次
3 回答
5
您可以比较图像的宽度和高度:
Bitmap bmp = your photo;
if(bmp.getWidth() > bmp.getHeight())
{
// landscape
}else
{
// portrait
}
于 2012-07-16T12:14:11.247 回答
1
如果照片是使用 PhoneGape 2.9 及更高版本专门拍摄的,则无法在 Android 中签入。
因为您必须从存储在拍摄照片中的EXIF 属性中提取此信息,而 android 甚至不会写出此属性的方向。
您可以参考以下问题的回复以获取更多信息: 画布 drawImage() 与在 iphone 上拍摄的横向照片被旋转
于 2014-01-24T15:42:05.320 回答
0
这应该做你需要的。它以角度 (0/90/180/270) 的形式返回方向:
private int getOrientation(Uri aUri, ContentResolver aRslv) {
Cursor _cursor = aRslv.query(aUri,
new String[] { MediaStore.Images.ImageColumns.ORIENTATION },
null, null, null);
if (_cursor != null) {
try {
if (_cursor.moveToFirst()) {
return _cursor.getInt(0);
} else {
return -1;
}
} finally {
_cursor.close();
}
} else {
return 0;
}
}
于 2012-07-16T12:17:26.057 回答