虽然不推荐使用Camera API,但它比Camera2更容易上手。但该文件似乎并不那么容易理解(具有我的阅读能力)。我已经搜索了很多想要解决的问题。但仍然存在许多问题。
1.相机的方向是什么?我有什么定义吗?相机有4个尺寸(左,上,右,下)。当我们说方向时,使用哪一个以及相对对象是什么?
2.为什么相机的方向和设备之间有所不同?
3.请您告诉我如何理解Camera.setDisplayOrientation()和Camera.parameters.setRotation()文件中给出的算法?对于这两种方法,文档给出了示例代码。这两种算法都使用方向/旋转的和和差异。我可以直接在我的项目中使用它。但那究竟是什么意思呢?
此外,以后置摄像头为例,前者使用
(info.orientation - degrees + 360) % 360
,而后者使用(info.orientation + orientation) % 360
。混乱:/
如果您能回答上述任何问题,或者只是分享您的一些想法和经验,感谢您。
答案 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列为左侧)。