我在android dev论坛上发布了这个,但是想在这里联系。

我们的应用程序中的一项活动是拍照。图片预览在1.5&屏幕上显示正确的屏幕显示方式。 1.6,但保存时,它会保存jpg 90旋转。

我可以在显示时实时旋转它,我想我可以在保存后重新保存。我的问题是我想在拍照时正确保存。

  

我的应用程序在1.5中编译工作正常。我有一些记忆问题w /      1.6由于图像尺寸,这是奇怪的b / c图像尺寸增加      拍照时使用surfaceholder / imagecapture拍照      打回来。我似乎通过调整大小来修复重新显示这些图像      他们使用bitmapfactory矩阵。但我的相机现在正在旋转      一切都是90度。看来我的覆盖了surfaceChanged      什么都不做,这是我在90度设置旋转的地方(我不能      记住为什么,这是10个月前!)。我试过旋转      摄像机参数参数为90度,0度。它似乎没有      做任何事......有什么想法?

有帮助吗?

解决方案

相机驱动程序不知道设备的方向。在1.5和1.6中,您需要调用parameters.set(“rotation”,degree)以在调用takePicture()之前告知驱动程序有关旋转的信息。在2.0中,有一个新的API setRotation(见下文)。请注意,有些设备会为您旋转整个图片,有些设备只会在EXIF标题中设置方向。

http://developer.android.com /reference/android/hardware/Camera.Parameters.html#setRotation(int)

  

以度为单位设置设备的方向。例如,假设设备的自然位置是横向的。如果用户以横向模式以2048x1536分辨率拍摄照片,则旋转应设置为0.如果用户将手机顺时针旋转90度,则旋转应设置为90.应用程序可以使用OrientationEventListener设置此参数。相机驱动程序可以在EXIF标题中设置方向而不旋转图片。或者驱动程序可能会旋转图片和EXIF缩略图。如果旋转Jpeg图片,则EXIF标题中的方向将丢失或为1(行#0为顶部,列#0为左侧)。
  的参数结果    rotation 设备的方向(以度为单位)。旋转只能是0,90,180或270

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top