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