• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Interface (ColorManagement)
2<!--Kit: Camera Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @qano-->
5<!--Designer: @leo_ysl-->
6<!--Tester: @xchaosioda-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12> - 本Interface首批接口从API version 12开始支持。
13
14ColorManagement 继承自 [ColorManagementQuery](arkts-apis-camera-ColorManagementQuery.md)。
15
16色彩管理类,用于设置色彩空间参数。
17
18## 导入模块
19
20```ts
21import { camera } from '@kit.CameraKit';
22```
23
24## setColorSpace<sup>12+</sup>
25
26setColorSpace(colorSpace: colorSpaceManager.ColorSpace): void
27
28设置色彩空间。
29
30使用该接口前,必须先通过[getSupportedColorSpaces](arkts-apis-camera-ColorManagementQuery.md#getsupportedcolorspaces12)获取当前设备所支持的ColorSpaces。该接口建议在[addOutput](arkts-apis-camera-Session.md#addoutput11)之后、[commitConfig](arkts-apis-camera-Session.md#commitconfig11-1)之前调用,如果在[commitConfig](arkts-apis-camera-Session.md#commitconfig11-1)之后调用该接口,会导致相机会话配置耗时增加。
31
32**P3广色域与HDR高动态范围成像**
33
34应用可以下发不同的色彩空间(ColorSpace)参数来支持P3广色域以及HDR的功能。
35当应用不主动设置色彩空间时,拍照模式默认为SDR拍摄效果。
36在拍照模式下若需要获取HDR高显效果的图片可通过设置色彩空间P3色域实现。
37应用针对不同模式使能HDR效果、设置的色彩空间以及设置相机输出流[Profile](arkts-apis-camera-i.md#profile)中的[CameraFormat](arkts-apis-camera-e.md#cameraformat)一一对应关系可参考下表。例如,在录像模式下若需要选择HDR拍摄,相机预览输出流和录像输出流[Profile](arkts-apis-camera-i.md#profile)中的[CameraFormat](arkts-apis-camera-e.md#cameraformat)可选择CAMERA_FORMAT_YCRCB_P010,色彩空间ColorSpace可选择设置2020_HLG_LIMIT。
38
39**录像模式:**
40
41| SDR/HDR拍摄         | CameraFormat             | ColorSpace       |
42|--------------------|--------------------------|------------------|
43| SDR                | CAMERA_FORMAT_YUV_420_SP | BT709_LIMIT      |
44| HDR_VIVID          | CAMERA_FORMAT_YCRCB_P010/CAMERA_FORMAT_YCBCR_P010 | BT2020_HLG_LIMIT/BT2020_HLG_FULL |
45
46**拍照模式:**
47
48| SDR/HDR拍摄        | ColorSpace |
49|--------------------|------------|
50| SDR(Default)       | SRGB       |
51| HDR                | DISPLAY_P3 |
52
53**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
54
55**系统能力:** SystemCapability.Multimedia.Camera.Core
56
57**参数:**
58
59| 参数名         | 类型                 | 必填 | 说明                      |
60| ------------ |---------------------- | -- | -------------------------- |
61| colorSpace | [colorSpaceManager.ColorSpace](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspace)  | 是 | 色彩空间,通过[getSupportedColorSpaces](arkts-apis-camera-ColorManagementQuery.md#getsupportedcolorspaces12)接口获取。   |
62
63**错误码:**
64
65以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。
66
67| 错误码ID         | 错误信息        |
68| --------------- | --------------- |
69| 7400101         |  Parameter missing or parameter type incorrect.     |
70| 7400102         |  The colorSpace does not match the format.     |
71| 7400103         |  Session not config.                           |
72| 7400201         |  Camera service fatal error.                   |
73
74**示例:**
75
76```ts
77import { BusinessError } from '@kit.BasicServicesKit';
78import { colorSpaceManager } from '@kit.ArkGraphics2D';
79
80function setColorSpace(session: camera.PhotoSession, colorSpaces: Array<colorSpaceManager.ColorSpace>): void {
81  if (colorSpaces === undefined || colorSpaces.length <= 0) {
82    return;
83  }
84  try {
85    session.setColorSpace(colorSpaces[0]);
86  } catch (error) {
87    let err = error as BusinessError;
88    console.error(`The setColorSpace call failed, error code: ${err.code}`);
89  }
90}
91```
92
93## getActiveColorSpace<sup>12+</sup>
94
95getActiveColorSpace(): colorSpaceManager.ColorSpace
96
97获取当前设置的色彩空间。
98
99**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
100
101**系统能力:** SystemCapability.Multimedia.Camera.Core
102
103**返回值:**
104
105| 类型                                             | 说明                           |
106| ----------------------------------------------- | ---------------------------- |
107| [colorSpaceManager.ColorSpace](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspace)               | 当前设置的色彩空间。                |
108
109**错误码:**
110
111以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。
112
113| 错误码ID         | 错误信息        |
114| --------------- | --------------- |
115| 7400103                |  Session not config.                                   |
116
117**示例:**
118
119```ts
120import { BusinessError } from '@kit.BasicServicesKit';
121import { colorSpaceManager } from '@kit.ArkGraphics2D';
122
123function getActiveColorSpace(session: camera.PhotoSession): colorSpaceManager.ColorSpace | undefined {
124  let colorSpace: colorSpaceManager.ColorSpace | undefined = undefined;
125  try {
126    colorSpace = session.getActiveColorSpace();
127  } catch (error) {
128    let err = error as BusinessError;
129    console.error(`The getActiveColorSpace call failed. error code: ${err.code}`);
130  }
131  return colorSpace;
132}
133```
134