在数码摄影中,拍摄设备(如手机、相机)会将图片的旋转角度(方向)信息保存在图片的Exif(Exchangeable image file format)数据的Orientation字段。
该信息不会直接改变图片的像素内容,但会告诉图像查看器如何正确地显示图像方向。
Exif标准中定义了8个Orientation值和它们的字符串表示。
要将图片正确显示需要执行与之对应的特定的操作,如下表所示:
| 值 | 字符串表示 | 要将图片正确显示需要执行的操作 |
|---|---|---|
| 1 | "Top-left" | 正常方向(无需旋转)。 |
| 2 | "Top-right" | 水平镜像翻转。 |
| 3 | "Bottom-right" | 旋转180°。 |
| 4 | "Bottom-left" | 垂直镜像翻转。 |
| 5 | "Left-top" | 先水平镜像翻转,再顺时针旋转270°。 |
| 6 | "Right-top" | 顺时针旋转90°。 |
| 7 | "Right-bottom" | 先水平镜像翻转,再顺时针旋转90°。 |
| 8 | "Left-bottom" | 顺时针旋转270°。 |
ArkTS场景下读取和编辑图片的旋转角度信息,可参考:读取和编辑图片Exif信息,对应的propertyKey需要设置为:ORIENTATION。
C/C++场景下读取和编辑图片的旋转角度信息,可参考:使用Image_NativeModule读取和编辑图片Exif信息,对应的key需要设置为:OHOS_IMAGE_PROPERTY_ORIENTATION。