三星galaxy s2总是将相机视图视为风景?
Posted
技术标签:
【中文标题】三星galaxy s2总是将相机视图视为风景?【英文标题】:samsung galaxy s2 always treat camera view as landscape? 【发布时间】:2014-05-15 09:36:17 【问题描述】:我的应用要求用户拍照然后保存。
我注意到三星 Galaxy S2 拍摄人像照片
但是当我将它保存到服务器时,我只能在服务器中以横向方式看到它。
(即使它是纵向拍摄的)。
我在使用其他手机(Samsung S4、Nexus 5)时不会发生这种情况。
当我查看照片库时,我看到的是纵向照片。
更新
奇怪的是,在我的 java 代码中,它似乎是纵向的
所以我真的不明白:
if (getContext().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
//a
else
//b
但我看到了一些奇怪的东西:使用 S2 相机时,设置和其他原生对话框都是横向的。见附件:
更新2
我检查了exif.getAttributeInt(ExifInterface.TAG_ORIENTATION
,得到了 6 个 (ExifInterface.ORIENTATION_ROTATE_90)
所以我尝试将其设置为 ORIENTATION_ROTATE_270 或 ORIENTATION_NORMAL
但没用
ExifInterface exif;
try
exif = new ExifInterface(imageFilename);
int orientation =
exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
exif.setAttribute(ExifInterface.TAG_ORIENTATION,
String.valueOf(ExifInterface.ORIENTATION_ROTATE_270));
exif.saveAttributes();
orientation =
exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
boolean b = orientation == Configuration.ORIENTATION_LANDSCAPE;
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
【问题讨论】:
你应该试试。这个问题发生在三星设备上。 ***.com/questions/13245556/… GovindRathod 请查看我的更新 【参考方案1】:你是对的。 Camera.Parameters.setRotation()的文档很清楚:
相机驱动程序可以在 EXIF 标头中设置方向,而无需 旋转图片。或者司机可以旋转图片和 EXIF 缩略图。如果旋转 Jpeg 图片,则 EXIF 标头将丢失或为 1(行 #0 位于顶部,列 #0 位于左侧 边)。
解决方案是在上传之前实际执行图片旋转,或者可能在服务器上(选择取决于您的产品要求)。您可以使用 Java MediaUtil 库,参见例如https://***.com/a/15302674/192373.
【讨论】:
谢谢。为什么将 exif 标签设置为“rotation_undefined”或“rotation_noraml”?我设法将其设置为所需的值,但图像仍在服务器上旋转。 我很困惑。你为什么建议The solution is to actually perform rotation of the pictures before upload
而不使用public void onOrientationChanged(int orientation)
?
你在什么情况下看到“rotation_undefined”?
让我解释一下。即使 EXIF 标志定义了正确的方向,一些图像查看器也会忽略此标志并显示旋转的图像。您无法修复世界,因此如果您希望图像普遍正确,可以根据 EXIF 标志(或设备方向)执行旋转。
Camera.Parameters.setRotation() 不影响预览。其目的是旋转捕获的 Jpeg。有些设备实际上会旋转图像,但有些设备只设置 EXIF 标志。有一个不同的 API,Camera.setOrientation(),它负责预览,但不负责 takePicture()。以上是关于三星galaxy s2总是将相机视图视为风景?的主要内容,如果未能解决你的问题,请参考以下文章
Android 三星 Galaxy S4 自定义相机预览失真
三星 Galaxy S3 上的 Android 相机预览不正确