代码之家  ›  专栏  ›  技术社区  ›  Chrispix

Android 1.6摄像头旋转?

  •  3
  • Chrispix  · 技术社区  · 15 年前

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

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

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

    我的应用程序在1.5版中编译时运行良好。我有一些记忆问题/ 1.6由于图像大小,这是奇怪的b/c图像大小增加 当通过使用Surfaceholder/ImageCapture拍摄照片时 回调。我似乎已经修复了通过调整大小重新显示那些图像的问题。 它们使用位图工厂矩阵。但是我的相机现在在旋转 一切都是90度。似乎我对表面的覆盖改变了 什么也没做,这就是我把旋转设置为90度的地方(我不能 记住为什么,那是10个月前的事了!)我试过旋转 相机参数参数参数为90度、0度。似乎没有 做任何事…有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  6
  •   Josh Lee ZZ Coder    15 年前

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

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

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