【发布时间】:2016-12-06 11:59:30
【问题描述】:
在我的应用程序中,当在纵向模式下从相机中单击图像时,图像会旋转,这仅适用于三星设备,其余设备工作正常。在研究堆栈溢出后,我实现了以下代码:
ExifInterface ei = new ExifInterface(imgFile.getPath());
int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
switch (orientation) {
case ExifInterface.ORIENTATION_UNDEFINED:
mBitmap = rotateImage(bitmap, 90);
break;
}
这段代码帮助我解决了三星中的这个问题,但是现在当从相机点击图像时,由于这段代码,它在其他设备中被旋转。
请告诉我如何解决此问题。
【问题讨论】:
-
就文档而言:
getAttributeInt"返回指定标签的整数值。如果图像文件中没有这样的标签或该值无法解析为整数,则返回 defaultValue。" , 这意味着标签未定义,并且返回 ExifInterface.ORIENTATION_UNDEFINED (0),或者您的开关未处理 ORIENTATION_(something) 情况。添加一个默认子句,并记录返回的orientation。 -
好的,非常感谢..会这样做..我在切换之前检查了方向的值,它说 0..
-
还要注意这个“问题”是旧的,since 2012 知道三星不会正确保存 Exif 数据。 Even the Exif standard 存在导致不兼容情况的问题。由于三星不支持 Exif 界面,您可以自己编辑该设置(如果您要求相机意图,请使用设备方向)或检查位图高度/宽度,并相应地翻转图像。
-
好的好的..非常感谢
标签: android android-camera image-rotation