• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.graphics.colorSpaceManager (色彩管理)
2
3本模块提供管理抽象化色域对象的一些基础能力,包括色域对象的创建与色域基础属性的获取等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { colorSpaceManager } from '@kit.ArkGraphics2D';
13```
14
15## ColorSpace
16
17色域类型枚举。
18
19**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
20
21**系统能力:** SystemCapability.Graphic.Graphic2D.ColorManager.Core
22
23| 名称                         | 值     | 说明                    |
24| --------------------------- | ------ | ----------------------- |
25| UNKNOWN                           | 0      | 未知的色域类型。|
26| ADOBE_RGB_1998                    | 1      | RGB色域为Adobe RGB(1998)类型。<br>转换函数为Adobe RGB(1998)类型。<br>编码范围为Full类型。 |
27| DCI_P3                            | 2      | RGB色域为DCI-P3类型。<br>转换函数为Gamma 2.6类型。<br>编码范围为Full类型。|
28| DISPLAY_P3                        | 3      | RGB色域为Display P3类型。<br>转换函数为SRGB类型。<br>编码范围为Full类型。 |
29| SRGB                              | 4      | RGB色域为SRGB类型。<br>转换函数为SRGB类型。<br>编码范围为Full类型。<br>系统默认色域类型。 |
30| CUSTOM                            | 5      | 用户自定义色域类型。|
31| BT709<sup>11+</sup>                | 6      | RGB色域为BT709类型。<br>转换函数为BT709类型。<br>编码范围为Full类型。 |
32| BT601_EBU<sup>11+</sup>            | 7      | RGB色域为BT601_P类型。<br>转换函数为BT709类型。<br>编码范围为Full类型。 |
33| BT601_SMPTE_C<sup>11+</sup>        | 8      | RGB色域为BT601_N类型。<br>转换函数为BT709类型。<br>编码范围为Full类型。 |
34| BT2020_HLG<sup>11+</sup>           | 9      | RGB色域为BT2020类型。<br>转换函数为HLG类型。<br>编码范围为Full类型。 |
35| BT2020_PQ<sup>11+</sup>            | 10     | RGB色域为BT2020类型。<br>转换函数为PQ类型。<br>编码范围为Full类型。 |
36| P3_HLG<sup>11+</sup>               | 11     | RGB色域为Display P3类型。<br>转换函数为HLG类型。<br>编码范围为Full类型。 |
37| P3_PQ<sup>11+</sup>                | 12     | RGB色域为Display P3类型。<br>转换函数为PQ类型。<br>编码范围为Full类型。 |
38| ADOBE_RGB_1998_LIMIT<sup>11+</sup> | 13     | RGB色域为Adobe RGB(1998)类型。<br>转换函数为Adobe RGB(1998)类型。<br>编码范围为Limit类型。 |
39| DISPLAY_P3_LIMIT<sup>11+</sup>     | 14     | RGB色域为Display P3类型。<br>转换函数为SRGB类型。<br>编码范围为Limit类型。 |
40| SRGB_LIMIT<sup>11+</sup>           | 15     | RGB色域为SRGB类型。<br>转换函数为SRGB类型。<br>编码范围为Limit类型。 |
41| BT709_LIMIT<sup>11+</sup>          | 16     | RGB色域为BT709类型。<br>转换函数为BT709类型。<br>编码范围为Limit类型。 |
42| BT601_EBU_LIMIT<sup>11+</sup>      | 17     | RGB色域为BT601_P类型。<br>转换函数为BT709类型。<br>编码范围为Limit类型。 |
43| BT601_SMPTE_C_LIMIT<sup>11+</sup>  | 18     | RGB色域为BT601_N类型。<br>转换函数为BT709类型。<br>编码范围为Limit类型。 |
44| BT2020_HLG_LIMIT<sup>11+</sup>     | 19     | RGB色域为BT2020类型。<br>转换函数为HLG类型。<br>编码范围为Limit类型。 |
45| BT2020_PQ_LIMIT<sup>11+</sup>      | 20     | RGB色域为BT2020类型。<br>转换函数为PQ类型。<br>编码范围为Limit类型。 |
46| P3_HLG_LIMIT<sup>11+</sup>         | 21     | RGB色域为Display P3类型。<br>转换函数为HLG类型。<br>编码范围为Limit类型。 |
47| P3_PQ_LIMIT<sup>11+</sup>          | 22     | RGB色域为Display P3类型。<br>转换函数为PQ类型。<br>编码范围为Limit类型。 |
48| LINEAR_P3<sup>11+</sup>            | 23     | RGB色域为Display P3类型。<br>转换函数为Linear类型。 |
49| LINEAR_SRGB<sup>11+</sup>          | 24     | RGB色域为SRGB类型。<br>转换函数为Linear类型。 |
50| LINEAR_BT709<sup>11+</sup>         | 24     | 与LINEAR_SRGB相同。<br>RGB色域为BT709类型。<br>转换函数为Linear类型。 |
51| LINEAR_BT2020<sup>11+</sup>        | 25     | RGB色域为BT2020类型。<br>转换函数为Linear类型。 |
52| H_LOG<sup>18+</sup>                | 26     | RGB色域为BT2020类型。<br>转换函数为LOG类型。 |
53| DISPLAY_SRGB<sup>11+</sup>         | 4      | 与SRGB相同。<br>RGB色域为SRGB类型。<br>转换函数为SRGB类型。<br>编码范围为Full类型。 |
54| DISPLAY_P3_SRGB<sup>11+</sup>      | 3      | 与DISPLAY_P3相同。<br>RGB色域为Display P3类型。<br>转换函数为SRGB类型。<br>编码范围为Full类型。 |
55| DISPLAY_P3_HLG<sup>11+</sup>       | 11     | 与P3_HLG相同。<br>RGB色域为Display P3类型。<br>转换函数为HLG类型。<br>编码范围为Full类型。 |
56| DISPLAY_P3_PQ<sup>11+</sup>        | 12     | 与P3_PQ相同。<br>RGB色域为Display P3类型。<br>转换函数为PQ类型。<br>编码范围为Full类型。 |
57
58## ColorSpacePrimaries
59
60色域标准三原色(红、绿、蓝)和白色,使用(x, y)表示其在色彩空间中的位置。
61
62**系统能力:** SystemCapability.Graphic.Graphic2D.ColorManager.Core
63
64| 名称                          | 类型 | 可读 | 可写 | 说明                                                         |
65| ---------------------------- | -------- | ---- | ---- | ----------------------------------------------------- |
66| redX                         | number   | 是   | 是   | 标准红色在色彩空间的x坐标值。 |
67| redY                         | number   | 是   | 是   | 标准红色在色彩空间的y坐标值。 |
68| greenX                       | number   | 是   | 是   | 标准绿色在色彩空间的x坐标值。 |
69| greenY                       | number   | 是   | 是   | 标准绿色在色彩空间的y坐标值。 |
70| blueX                        | number   | 是   | 是   | 标准蓝色在色彩空间的x坐标值。 |
71| blueY                        | number   | 是   | 是   | 标准蓝色在色彩空间的y坐标值。 |
72| whitePointX                  | number   | 是   | 是   | 标准白色在色彩空间的x坐标值。 |
73| whitePointY                  | number   | 是   | 是   | 标准白色在色彩空间的y坐标值。 |
74
75## colorSpaceManager.create
76
77create(colorSpaceName: ColorSpace): ColorSpaceManager
78
79创建标准色域对象。
80
81**系统能力:** SystemCapability.Graphic.Graphic2D.ColorManager.Core
82
83**参数:**
84
85| 参数名           | 类型                     | 必填 | 说明                          |
86| --------------- | ------------------------ | ---- | -----------------------------|
87| colorSpaceName  | [ColorSpace](#colorspace)| 是   | 标准色域类型枚举值。<br>UNKNOWN与CUSTOM不可用于直接创建色域对象。          |
88
89**返回值:**
90
91| 类型                | 说明                     |
92| ------------------ | ------------------------ |
93| [ColorSpaceManager](#colorspacemanager)  | 返回当前创建的色域对象实例。               |
94
95**错误码:**
96
97以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[色彩管理错误码](errorcode-colorspace-manager.md)。
98
99| 错误码ID | 错误信息 |
100| ------- | ----------------------- |
101| 401 | Parameter error. Possible cause: 1.Incorrect parameter type. 2.Parameter verification failed.|
102| 18600001 | The parameter value is abnormal. |
103
104**示例:**
105
106```ts
107let colorSpace: colorSpaceManager.ColorSpaceManager;
108try {
109    colorSpace = colorSpaceManager.create(colorSpaceManager.ColorSpace.SRGB);
110} catch (err) {
111    console.log(`Failed to create SRGB colorSpace. Cause: ` + JSON.stringify(err));
112}
113```
114
115## colorSpaceManager.create
116
117create(primaries: ColorSpacePrimaries, gamma: number): ColorSpaceManager
118
119创建用户自定义色域对象。
120
121**系统能力:** SystemCapability.Graphic.Graphic2D.ColorManager.Core
122
123**参数:**
124
125| 参数名           | 类型                                       | 必填 | 说明                          |
126| --------------- | ------------------------------------------ | ---- | -----------------------------|
127| primaries       | [ColorSpacePrimaries](#colorspaceprimaries)| 是   | 色域标准三原色。               |
128| gamma           | number                                     | 是   | 色域gamma值。                 |
129
130**返回值:**
131
132| 类型                | 说明                     |
133| ------------------ | ------------------------ |
134| [ColorSpaceManager](#colorspacemanager)  | 返回当前创建的色域对象实例。<br>色域类型定义为[ColorSpace](#colorspace)枚举值`CUSTOM`。 |
135
136**错误码:**
137
138以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[色彩管理错误码](errorcode-colorspace-manager.md)。
139
140| 错误码ID | 错误信息 |
141| ------- | ----------------------- |
142| 401 | Parameter error. Possible cause: 1.Incorrect parameter type. 2.Parameter verification failed.|
143| 18600001 | The parameter value is abnormal. |
144
145**示例:**
146
147```ts
148let colorSpace: colorSpaceManager.ColorSpaceManager;
149try {
150    let primaries: colorSpaceManager.ColorSpacePrimaries = {
151        redX: 0.1,
152        redY: 0.1,
153        greenX: 0.2,
154        greenY: 0.2,
155        blueX: 0.3,
156        blueY: 0.3,
157        whitePointX: 0.4,
158        whitePointY: 0.4
159    };
160    let gamma = 2.2;
161    colorSpace = colorSpaceManager.create(primaries, gamma);
162} catch (err) {
163    console.log(`Failed to create colorSpace with customized primaries and gamma. Cause: ` + JSON.stringify(err));
164}
165```
166
167## ColorSpaceManager
168
169当前色域对象实例。
170
171下列API示例中都需先使用[create()](#colorspacemanagercreate)获取到ColorSpaceManager实例,再通过此实例调用对应方法。
172
173### getColorSpaceName
174
175getColorSpaceName(): ColorSpace
176
177获取色域类型。
178
179**系统能力:** SystemCapability.Graphic.Graphic2D.ColorManager.Core
180
181**返回值:**
182
183| 类型                | 说明                     |
184| ------------------ | ------------------------ |
185| [ColorSpace](#colorspace)  | 返回色域类型枚举值。 |
186
187**错误码:**
188
189以下错误码的详细介绍请参见[色彩管理错误码](errorcode-colorspace-manager.md)。
190
191| 错误码ID | 错误信息 |
192| ------- | ----------------------- |
193| 18600001 | The parameter value is abnormal. |
194
195**示例:**
196
197```ts
198try {
199    let spaceName = colorSpace.getColorSpaceName();
200} catch (err) {
201    console.log(`Fail to get colorSpace's name. Cause: ` + JSON.stringify(err));
202}
203```
204
205### getWhitePoint
206
207getWhitePoint(): Array\<number\>
208
209获取色域白点值。
210
211**系统能力:** SystemCapability.Graphic.Graphic2D.ColorManager.Core
212
213**返回值:**
214
215| 类型                | 说明                     |
216| ------------------ | ------------------------ |
217| Array\<number\>  | 返回色域白点值[x, y]。 |
218
219**错误码:**
220
221以下错误码的详细介绍请参见[色彩管理错误码](errorcode-colorspace-manager.md)。
222
223| 错误码ID | 错误信息 |
224| ------- | ----------------------- |
225| 18600001 | The parameter value is abnormal. |
226
227**示例:**
228
229```ts
230try {
231    let point = colorSpace.getWhitePoint();
232} catch (err) {
233    console.log(`Failed to get white point. Cause: ` + JSON.stringify(err));
234}
235```
236
237### getGamma
238
239getGamma(): number
240
241获取色域gamma值。
242
243**系统能力:** SystemCapability.Graphic.Graphic2D.ColorManager.Core
244
245**返回值:**
246
247| 类型                | 说明                     |
248| ------------------ | ------------------------ |
249| number  | 返回色域gamma值。 |
250
251**错误码:**
252
253以下错误码的详细介绍请参见[色彩管理错误码](errorcode-colorspace-manager.md)。
254
255| 错误码ID | 错误信息 |
256| ------- | ----------------------- |
257| 18600001 | The parameter value is abnormal. |
258
259**示例:**
260
261```ts
262try {
263    let gamma = colorSpace.getGamma();
264} catch (err) {
265    console.log(`Failed to get gamma. Cause: ` + JSON.stringify(err));
266}
267```