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```