了解Camera API

时间:2017-10-12 03:44:20

标签: android camera

虽然不推荐使用Camera API,但它比Camera2更容易上手。但该文件似乎并不那么容易理解(具有我的阅读能力)。我已经搜索了很多想要解决的问题。但仍然存在许多问题。

  

1.相机的方向是什么?我有什么定义吗?相机有4个尺寸(左,上,右,下)。当我们说方向时,使用哪一个以及相对对象是什么?

     

2.为什么相机的方向和设备之间有所不同?

     

3.请您告诉我如何理解Camera.setDisplayOrientation()Camera.parameters.setRotation()文件中给出的算法?对于这两种方法,文档给出了示例代码。这两种算法都使用方向/旋转的差异。我可以直接在我的项目中使用它。但那究竟是什么意思呢?

     

此外,以后置摄像头为例,前者使用(info.orientation - degrees + 360) % 360,而后者使用(info.orientation + orientation) % 360。混乱:/

如果您能回答上述任何问题,或者只是分享您的一些想法和经验,感谢您。

1 个答案:

答案 0 :(得分:2)

1。这是相机在设备中的定位方式

2. 设备方向是设备的当前方向/旋转(横向/纵向)

3. Camera.setDisplayOrientation()

影响预览

<强> Camera.parameters.setRotation()

影响结果图片(jpeg等)

<强>文档

<强> Camera.setDisplayOrientation()

  

以度为单位设置预览显示的顺时针旋转。这影响了   预览帧和快照后显示的图片。这个   方法对肖像模式应用程序很有用。请注意预览   前置摄像头的显示器在水平翻转之前   旋转,即图像沿中心垂直方向反射   相机传感器的轴。因此用户可以将自己视为外观   镜中。

<强> Camera.parameters.setRotation()

  

设置相对于摄像机方向的顺时针旋转角度(以度为单位)。这会影响从JPEG Camera.PictureCallback返回的图片。相机驱动程序可以在EXIF标题中设置方向而不旋转图片。或者驱动程序可能会旋转图片和EXIF缩略图。如果旋转Jpeg图片,则EXIF标题中的方向将丢失或为1(第0行为顶部,第0列为左侧)。