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