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