# 相机旋转角度的术语

在适配相机旋转角度中涉及设备方向、镜头角度、屏幕显示角度等多个术语，开发者可以了解相关概念，帮助理解框架的运作机制。

## 设备自然方向

**设备自然方向**指设备默认的使用方向，以手机为例，如图所示，手机的自然方向为竖屏且充电口向下。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/98/v3/HjPboppeThSS-kKBtdiiRg/zh-cn_image_0000002778932413.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=7FACE24A32C34EED99421080A0F444FFA3E0276DEEFA1F66720FE9C1EA30D46D)

## 屏幕显示方向

**屏幕显示方向**指当前用户视角下，设备正确的显示方向。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ae/v3/Q0JRAjgmQ-mFQfCKnlVgzQ/zh-cn_image_0000002749333330.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=75545BC30AB1B9E38323CA303598FC91AB22E078F7FE21179957ADE56A664333)

## 屏幕旋转角度

显示设备的屏幕顺时针旋转角度，简称为**屏幕旋转角度**，即设备从自然方向到当前方向的顺时针夹角。

如图所示，图示夹角即为屏幕旋转角度，可通过[OH_NativeDisplayManager_GetDefaultDisplayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-manager-h#oh_nativedisplaymanager_getdefaultdisplayrotation)获取。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/2c/v3/C5aPRNyLSayRZ9kYiSqWiA/zh-cn_image_0000002749493214.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=628AA21B05615DFAFF576D9F9C3367321DC4BB7843D2CAD0E9BBDF21481B5614)

## 相机镜头安装角度

**相机镜头安装角度**指相机采集图像方向到设备自然方向在顺时针方向的夹角。

以手机为例，手机后置相机传感器是横屏安装的，当手机在竖屏方向使用后置相机镜头拍摄时，相机采集到的原始图像方向如图所示。

此时图像需要顺时针旋转90度，才能与设备自然方向保持一致，所以**后置相机的镜头角度为90度**。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a4/v3/jIHiOI2oQ7iCtzGd6aTQuw/zh-cn_image_0000002779092273.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=E8AB2B5594D93EA18F5B9B3DCD87D81CB2FF96E0873A396C2D2A69C6D4BFF47D)

而手机前置镜头，是朝向使用者的，当手机在竖屏方向使用前置相机镜头拍摄时，出图方向与后置出图方向互为镜像，如下图所示，**前置相机的镜头角度为270度**。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/80/v3/PPB6c-aEQU2s4pOA2FP7AQ/zh-cn_image_0000002778932415.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=F958D3A2E5BD7FC75112F15124103EEE015196A738D479BD25F3333E7B72C0DA)

## 预览旋转角度

> 说明
>
> 开发者可参考以下章节，了解框架实现的机制，在实际开发过程中，推荐通过接口[获取预览旋转角度](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-rotation-angle-adaptation-native#预览)。

在预览时，图像旋转角度与屏幕显示旋转角度相关。系统将以原始图像方向为基线，根据相机镜头角度和屏幕显示补偿角度，旋转图像。

计算公式：图像旋转角度=镜头安装角度+屏幕显示补偿角度，屏幕显示补偿角度的值与屏幕旋转角度相等。

以手机设备为例展示相机在预览下如何处理图像，计算的角度设置给系统侧，作用于直接送显场景，应用自绘制参考[应用自绘制预览角度处理](#应用自绘制预览角度处理)。

|设备和镜头方向|处理过程示意图|
|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|**设备条件：** 手机竖屏、充电口向下。 使用后置相机拍摄。 **可得：** - 后置相机镜头角度 = 90° - 屏幕旋转角度= 0°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 0 - **图像预览旋转角度 = 90°+0° = 90°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/04/v3/S16gViddQdOaXdovzGTxng/zh-cn_image_0000002749333332.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=D2F282C0C7F2770D6CCD34A1F2513D63B7707F988DF7D8C3EE7632D47B22D7BC)|
|**设备条件：** 手机横屏、充电口向左。 使用后置相机拍摄。 **可得：** - 后置相机镜头角度 = 90° - 屏幕旋转角度 = 90°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 1 - **图像预览旋转角度 = 90°+90° = 180°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/65/v3/nqwOhRaNRp6-L4COZRrkxQ/zh-cn_image_0000002749493216.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=B8A414CFAF22483AFDBDA977458E08E9DFCA011BB3B864E14BA992FEDFA13C34)|
|**设备条件：** 手机竖屏、充电口向上。 使用后置相机拍摄。 **可得：** - 后置相机镜头角度 = 90° - 屏幕旋转角度 = 180°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 2 - **图像预览旋转角度 = 90°+180° = 270°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b5/v3/6j-Mg4I7SXKXvcvfmw_LAA/zh-cn_image_0000002779092275.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=94B457A41AB92ED1C56E44A18AE8DBE67D7A848289BD7A6E420A3991CB73625D)|
|**设备条件：** 手机横屏、充电口向右。 使用后置相机拍摄。 **可得：** - 后置相机镜头角度 = 90° - 屏幕旋转角度 = 270°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 3 - **图像预览旋转角度 = 90°+270° = 0°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/f9/v3/3_k8NP41TaGAJkGoBXWUDA/zh-cn_image_0000002778932417.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=5ABA8B70E04A684F4BEC2339A254A5FD85D5951AFCA3F4FF3F47809027688C95)|
|**设备条件：** 手机竖屏、充电口向下。 使用前置相机拍摄。 **可得：** - 前置相机镜头角度 = 270° - 前置相机镜像出图 - 屏幕旋转角度= 0°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 0 - **图像预览旋转角度 = 270°+0° = 270°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ea/v3/2uIydSOSSx-2n4UrIj8FiQ/zh-cn_image_0000002749333334.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=28CBEAB596206DDDC8195407C0A5757FA8AF592378C02C813945369862357355)|
|**设备条件：** 手机横屏、充电口向左。 使用前置相机拍摄。 **可得：** - 前置相机镜头角度 = 270° - 前置相机镜像出图 - 屏幕旋转角度 = 90°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 1 - **图像预览旋转角度 = 270°+90° =0°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7e/v3/rsREXiuUSoKHQQ42V-Fjpw/zh-cn_image_0000002749493218.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=5D2202B05A93E55C7E77B981433FB12959FE538A47AAF59F55969B72248B2BCF)|
|**设备条件：** 手机竖屏、充电口向上。 使用前置相机拍摄。 **可得：** - 前置相机镜头角度 = 270° - 前置相机镜像出图 - 屏幕旋转角度 = 180°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 2 - **图像预览旋转角度 = 270°+180° = 90°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/55/v3/c91Rfkc1TbOYj6S2cJ-2uQ/zh-cn_image_0000002779092277.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=9B2CB5F46F847E553B2F8EED3C1EA53E6BAEE88F9CC4E8365D871A842C2998B3)|
|**设备条件：** 手机横屏、充电口向右。 使用前置相机拍摄。 **可得：** - 前置相机镜头角度 = 270° - 前置相机镜像出图 - 屏幕旋转角度 = 270°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 3 - **图像预览旋转角度 = 270°+270° = 180°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/2f/v3/wuTufmwRRI64Z_eeePmB3g/zh-cn_image_0000002778932419.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=1FCB35D8302236ACE2FD19CC885CA746F5F64684A65C6B1211FCF3ABBB6DE897)|

## 应用自绘制预览角度处理

应用自绘制场景是指应用获取图片后，通过libyuv、GL等图形处理库进行二次处理，生成新的图像数据并送到显示设备进行渲染绘制。

常见的实现方式是通过使用[image_receiver_native.h](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-image-receiver-native-h)创建的回调流，应用层作为消费端，自行处理图片旋转等操作，以适应自绘制场景的预览角度需求。自绘制场景预览角度与[预览旋转角度](#预览旋转角度)中描述的场景存在细微差异。

主要差异体现在使用前置镜头拍摄预览的场景：

* 自绘制场景可以按照[预览旋转角度](#预览旋转角度)中的图示方式，先根据镜头的安装角度进行旋转，随后进行镜像处理，最后再次旋转以适应屏幕角度。然而，这种方式包含多个步骤，较为繁琐，不被推荐。

* 自绘制场景也可以采取先旋转再镜像的方式，这种方式需要考虑水平镜像和垂直镜像，具体的处理步骤如下图所示。

|设备和镜头方向|处理过程示意图|
|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|**设备条件：** 手机竖屏、充电口向下。 使用前置相机拍摄。 **可得：** - 前置相机镜头角度 = 270° - 前置相机镜像出图 - 屏幕旋转角度= 0°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 0 - **图像预览旋转角度 = 270°+0° = 270°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/97/v3/ov0s3ifGQ9-BVSbs6-9eow/zh-cn_image_0000002749333336.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=2F186C5A5D3B77045808317671B29F5ABFC98908A2F17E8126BCAA314357FBA0)|
|**设备条件：** 手机横屏、充电口向左。 使用前置相机拍摄。 **可得：** - 前置相机镜头角度 = 270° - 前置相机镜像出图 - 屏幕旋转角度 = 90°，[displayRotation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-display-info-h#nativedisplaymanager_rotation) = 1 - **图像预览旋转角度 = 270°+90° = 0°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/86/v3/chRnW0KsQZ-2PANdXvghgw/zh-cn_image_0000002749493220.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=68859F9E1A9E369963DA42D2A8A1A507B1AD5C02AC43AFF8D659A51C0C5A6621)|

## 拍照/录像角度

在拍照、录像时，图像旋转角度与设备重力方向（即设备旋转角度）相关。

* 使用后置相机拍摄时，图像旋转角度=[镜头安装角度](#相机镜头安装角度)+重力方向。

* 使用前置相机拍摄时，图像旋转角度=[镜头安装角度](#相机镜头安装角度)-重力方向。

|设备和镜头方向|处理过程示意图|
|:------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|**设备条件：** 手机横屏、充电口向左。 使用后置相机拍摄。 **可得：** - 后置相机镜头角度 = 90° - 设备旋转角度 = 90° - **图像预览旋转角度 = 90°+90° = 180°**|![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/56/v3/pliWmPYySzSUE3oLmgPw3g/zh-cn_image_0000002779092279.png?HW-CC-KV=V1&HW-CC-Date=20260929T121650Z&HW-CC-Expire=31536000000&HW-CC-Sign=895BD5050D84CCB3A98A3E2AB1AB9E2E7078010B8872A7904F076638CFB4167B)|

应用需要监听[OH_Sensor_Subscribe](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-oh-sensor-h#oh_sensor_subscribe)，获取重力传感器在x、y、z三个方向上的数据，计算得出设备旋转角度，请参考[计算设备旋转角度](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-rotation-angle-adaptation-native#计算设备旋转角度)。

