1# ImageProcessing
2
3
4## 概述
5
6ImageProcessing模块提供图片处理功能的API接口,包括颜色空间转换和元数据生成。
7
8**起始版本:** 13
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 | 
17| -------- | -------- |
18| [image_processing.h](image__processing_8h.md) | 声明图片处理函数。 | 
19| [image_processing_types.h](image__processing__types_8h.md) | 图片处理的类型定义。 | 
20
21
22### 结构体
23
24| 名称 | 描述 | 
25| -------- | -------- |
26| struct  [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) | 色彩空间信息,用于色彩空间转换能力查询。 | 
27
28
29### 类型定义
30
31| 名称 | 描述 | 
32| -------- | -------- |
33| typedef struct [OH_ImageProcessing](#oh_imageprocessing) [OH_ImageProcessing](#oh_imageprocessing) | 提供OH_ImageProcessing结构体声明。 | 
34| typedef struct [OH_PixelmapNative](#oh_pixelmapnative) [OH_PixelmapNative](#oh_pixelmapnative) | 提供OH_PixelmapNative结构体声明。 | 
35| typedef struct [OH_AVFormat](#oh_avformat) [OH_AVFormat](#oh_avformat) | 提供OH_AVFormat结构体声明。 | 
36| typedef struct [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) [ImageProcessing_ColorSpaceInfo](#imageprocessing_colorspaceinfo) | 色彩空间信息,用于色彩空间转换能力查询。 | 
37| typedef enum [ImageDetailEnhancer_QualityLevel](#imagedetailenhancer_qualitylevel-1) [ImageDetailEnhancer_QualityLevel](#imagedetailenhancer_qualitylevel) | 质量级别,用于细节增强能力。 | 
38| typedef enum [ImageProcessing_ErrorCode](#imageprocessing_errorcode-1) [ImageProcessing_ErrorCode](#imageprocessing_errorcode) | 图片处理接口错误码说明。 | 
39
40
41### 枚举
42
43| 名称 | 描述 | 
44| -------- | -------- |
45| [ImageDetailEnhancer_QualityLevel](#imagedetailenhancer_qualitylevel-1) { <br/>IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_NONE,<br/>IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_LOW,<br/>IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_MEDIUM,<br/>IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_HIGH } | 质量级别,用于细节增强能力。 | 
46| [ImageProcessing_ErrorCode](#imageprocessing_errorcode-1) {<br/>IMAGE_PROCESSING_SUCCESS,<br/>IMAGE_PROCESSING_ERROR_INVALID_PARAMETER = 401,<br/>IMAGE_PROCESSING_ERROR_UNKNOWN = 29200001,<br/>IMAGE_PROCESSING_ERROR_INITIALIZE_FAILED,<br/>IMAGE_PROCESSING_ERROR_CREATE_FAILED,<br/>IMAGE_PROCESSING_ERROR_PROCESS_FAILED,<br/>IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING,<br/>IMAGE_PROCESSING_ERROR_OPERATION_NOT_PERMITTED,<br/>IMAGE_PROCESSING_ERROR_NO_MEMORY,<br/>IMAGE_PROCESSING_ERROR_INVALID_INSTANCE,<br/>IMAGE_PROCESSING_ERROR_INVALID_VALUE<br/>} | 图片处理接口错误码说明。 | 
47
48
49### 函数
50
51| 名称 | 描述 | 
52| -------- | -------- |
53| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_InitializeEnvironment](#oh_imageprocessing_initializeenvironment) (void) | 初始化图片处理模块的全局环境。 | 
54| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_DeinitializeEnvironment](#oh_imageprocessing_deinitializeenvironment) (void) | 反初始化图片处理模块的全局环境。 | 
55| bool [OH_ImageProcessing_IsColorSpaceConversionSupported](#oh_imageprocessing_iscolorspaceconversionsupported) (const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*sourceImageInfo, const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*destinationImageInfo) | 查询是否支持当前图片色彩空间转换能力。 | 
56| bool [OH_ImageProcessing_IsCompositionSupported](#oh_imageprocessing_iscompositionsupported) (const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*sourceImageInfo, const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*sourceGainmapInfo, const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*destinationImageInfo) | 查询是否支持HDR双层图片转换为HDR单层图片。 | 
57| bool [OH_ImageProcessing_IsDecompositionSupported](#oh_imageprocessing_isdecompositionsupported) (const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*sourceImageInfo, const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*destinationImageInfo, const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*destinationGainmapInfo) | 查询是否支持HDR单层图片转换为HDR双层图片。 | 
58| bool [OH_ImageProcessing_IsMetadataGenerationSupported](#oh_imageprocessing_ismetadatagenerationsupported) (const [ImageProcessing_ColorSpaceInfo](_image_processing___color_space_info.md) \*sourceImageInfo) | 查询是否支持图片元数据生成能力。 | 
59| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_Create](#oh_imageprocessing_create) ([OH_ImageProcessing](#oh_imageprocessing) \*\*imageProcessor, int32_t type) | 创建一个图片处理模块实例。 | 
60| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_Destroy](#oh_imageprocessing_destroy) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor) | 销毁当前图片处理模块实例。 | 
61| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_SetParameter](#oh_imageprocessing_setparameter) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor, const [OH_AVFormat](#oh_avformat) \*parameter) | 设置图片处理模块参数。 | 
62| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_GetParameter](#oh_imageprocessing_getparameter) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor, [OH_AVFormat](#oh_avformat) \*parameter) | 获取图片处理模块参数。 | 
63| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_ConvertColorSpace](#oh_imageprocessing_convertcolorspace) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor, [OH_PixelmapNative](#oh_pixelmapnative) \*sourceImage, [OH_PixelmapNative](#oh_pixelmapnative) \*destinationImage) | 实现单层图片间转换。 | 
64| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_Compose](#oh_imageprocessing_compose) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor, [OH_PixelmapNative](#oh_pixelmapnative) \*sourceImage, [OH_PixelmapNative](#oh_pixelmapnative) \*sourceGainmap, [OH_PixelmapNative](#oh_pixelmapnative) \*destinationImage) | 实现HDR双层图片到HDR单层图片的转换。 | 
65| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_Decompose](#oh_imageprocessing_decompose) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor, [OH_PixelmapNative](#oh_pixelmapnative) \*sourceImage, [OH_PixelmapNative](#oh_pixelmapnative) \*destinationImage, [OH_PixelmapNative](#oh_pixelmapnative) \*destinationGainmap) | 实现HDR单层图片到HDR双层图片的转换。 | 
66| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_GenerateMetadata](#oh_imageprocessing_generatemetadata) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor, [OH_PixelmapNative](#oh_pixelmapnative) \*sourceImage) | 生成HDR图片元数据。 | 
67| [ImageProcessing_ErrorCode](#imageprocessing_errorcode) [OH_ImageProcessing_EnhanceDetail](#oh_imageprocessing_enhancedetail) ([OH_ImageProcessing](#oh_imageprocessing) \*imageProcessor, [OH_PixelmapNative](#oh_pixelmapnative) \*sourceImage, [OH_PixelmapNative](#oh_pixelmapnative) \*destinationImage) | 进行图片清晰度/细节增强。 | 
68
69
70### 变量
71
72| 名称 | 描述 | 
73| -------- | -------- |
74| const int32_t [IMAGE_PROCESSING_TYPE_COLOR_SPACE_CONVERSION](#image_processing_type_color_space_conversion) | 用于创建色彩空间转换的图片处理实例。 | 
75| const int32_t [IMAGE_PROCESSING_TYPE_COMPOSITION](#image_processing_type_composition) | 用于创建双层HDR图片转换单层HDR图片的图片处理实例。 | 
76| const int32_t [IMAGE_PROCESSING_TYPE_DECOMPOSITION](#image_processing_type_decomposition) | 用于创建单层HDR图片转换双层HDR图片的图片处理实例。 | 
77| const int32_t [IMAGE_PROCESSING_TYPE_METADATA_GENERATION](#image_processing_type_metadata_generation) | 用于创建元数据生成的图片处理实例。 | 
78| const int32_t [IMAGE_PROCESSING_TYPE_DETAIL_ENHANCER](#image_processing_type_detail_enhancer) | 用于创建细节增强的图片处理实例。 | 
79| const char \* [IMAGE_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL](#image_detail_enhancer_parameter_key_quality_level) | 用于设定图像细节增强的质量级别。 | 
80
81
82## 类型定义说明
83
84
85### ImageDetailEnhancer_QualityLevel
86
87```
88typedef enum ImageDetailEnhancer_QualityLevel ImageDetailEnhancer_QualityLevel
89```
90
91**描述**
92
93质量级别,用于细节增强能力。
94
95键参数的值[IMAGE_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL](#image_detail_enhancer_parameter_key_quality_level)。
96
97**起始版本:** 13
98
99**参见:**
100
101[OH_ImageProcessing_SetParameter](#oh_imageprocessing_setparameter)
102
103[OH_ImageProcessing_GetParameter](#oh_imageprocessing_getparameter)
104
105
106### ImageProcessing_ColorSpaceInfo
107
108```
109typedef struct ImageProcessing_ColorSpaceInfo ImageProcessing_ColorSpaceInfo
110```
111
112**描述**
113
114色彩空间信息,用于色彩空间转换能力查询。
115
116**起始版本:** 13
117
118**参见:**
119
120[OH_ImageProcessing_IsColorSpaceConversionSupported](#oh_imageprocessing_iscolorspaceconversionsupported)
121
122[OH_ImageProcessing_IsCompositionSupported](#oh_imageprocessing_iscompositionsupported)
123
124[OH_ImageProcessing_IsDecompositionSupported](#oh_imageprocessing_isdecompositionsupported)
125
126
127### ImageProcessing_ErrorCode
128
129```
130typedef enum ImageProcessing_ErrorCode ImageProcessing_ErrorCode
131```
132
133**描述**
134
135图片处理接口错误码说明。
136
137**起始版本:** 13
138
139
140### OH_AVFormat
141
142```
143typedef struct OH_AVFormat OH_AVFormat
144```
145
146**描述**
147
148提供OH_AVFormat结构体声明。
149
150**起始版本:** 13
151
152
153### OH_ImageProcessing
154
155```
156typedef struct OH_ImageProcessing OH_ImageProcessing
157```
158
159**描述**
160
161提供OH_ImageProcessing结构体声明。
162
163定义了OH_ImageProcessing的空指针并调用[OH_ImageProcessing_Create](#oh_imageprocessing_create)来创建图片处理实例。在创建实例之前,指针应为空。用户可以为不同的处理类型创建多个图片实例。
164
165**起始版本:** 13
166
167
168### OH_PixelmapNative
169
170```
171typedef struct OH_PixelmapNative OH_PixelmapNative
172```
173
174**描述**
175
176提供OH_PixelmapNative结构体声明。
177
178**起始版本:** 13
179
180
181## 枚举类型说明
182
183
184### ImageDetailEnhancer_QualityLevel
185
186```
187enum ImageDetailEnhancer_QualityLevel
188```
189
190**描述**
191
192质量级别,用于细节增强能力。
193
194键参数的值[IMAGE_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL](#image_detail_enhancer_parameter_key_quality_level)。
195
196**起始版本:** 13
197
198**参见:**
199
200[OH_ImageProcessing_SetParameter](#oh_imageprocessing_setparameter)
201
202[OH_ImageProcessing_GetParameter](#oh_imageprocessing_getparameter)
203
204| 枚举值 | 描述 | 
205| -------- | -------- |
206| IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_NONE | 无细节增强。 | 
207| IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_LOW | 细节增强质量较低,但速度较快。默认级别。 | 
208| IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_MEDIUM | 细节增强质量中等,速度介于低级别与高级别之间。 | 
209| IMAGE_DETAIL_ENHANCER_QUALITY_LEVEL_HIGH | 细节增强质量较高,但速度较慢。 | 
210
211
212### ImageProcessing_ErrorCode
213
214```
215enum ImageProcessing_ErrorCode
216```
217
218**描述**
219
220图片处理接口错误码说明。
221
222**起始版本:** 13
223
224| 枚举值 | 描述 | 
225| -------- | -------- |
226| IMAGE_PROCESSING_SUCCESS | 成功。 | 
227| IMAGE_PROCESSING_ERROR_INVALID_PARAMETER | 输入参数无效。<br>在以下错误条件返回该错误码: <br>1 - 输入或输出buffer无效,例如图片buffer为空。 <br>2 - 参数无效,例如参数为空。 <br>3 - 类型无效,例如在创建函数中传入的类型不存在。 | 
228| IMAGE_PROCESSING_ERROR_UNKNOWN | 未知错误,例如GPU计算失败或memcpy失败。 | 
229| IMAGE_PROCESSING_ERROR_INITIALIZE_FAILED | 全局环境初始化失败,例如GPU环境初始化失败。 | 
230| IMAGE_PROCESSING_ERROR_CREATE_FAILED | 创建图片处理实例失败,例如实例数量超过上限。 | 
231| IMAGE_PROCESSING_ERROR_PROCESS_FAILED | 处理图片buffer失败,例如处理超时。 | 
232| IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING | 当前处理不支持,可以通过“OH_ImageProcessing_IsXXXSupported”接口查询是否支持该能力。 | 
233| IMAGE_PROCESSING_ERROR_OPERATION_NOT_PERMITTED | 无权限操作,可能由于状态不正确导致。 | 
234| IMAGE_PROCESSING_ERROR_NO_MEMORY | 内存不足。 | 
235| IMAGE_PROCESSING_ERROR_INVALID_INSTANCE | 无效的图片处理实例,可能由于实例为空导致。 | 
236| IMAGE_PROCESSING_ERROR_INVALID_VALUE | 输入值无效。<br>在以下错误条件下返回该错误码: <br>1 - 输入或输出图片buffer无效,例如图片buffer的宽度(高度)过大或颜色空间不正确。 <br>2 - 参数无效,例如参数不包括有效信息,例如细节增强的质量级别不正确。 | 
237
238
239## 函数说明
240
241
242### OH_ImageProcessing_Compose()
243
244```
245ImageProcessing_ErrorCode OH_ImageProcessing_Compose(OH_ImageProcessing* imageProcessor,OH_PixelmapNative* sourceImage, OH_PixelmapNative* sourceGainmap, OH_PixelmapNative* destinationImage)
246```
247
248**描述**
249
250实现HDR双层图片到HDR单层图片的转换。
251
252此函数通过输入图片与输入Gainmap生成输出图片。
253
254**起始版本:** 13
255
256**参数:**
257
258| 名称 | 描述 | 
259| -------- | -------- |
260| imageProcessor | 指向图片处理模块实例的指针。该实例应该由[IMAGE_PROCESSING_TYPE_COMPOSITION](#image_processing_type_composition)类型创建。 | 
261| sourceImage | 指向输入图片的指针。 | 
262| sourceGainmap | 指向输入Gainmap的指针。 | 
263| destinationImage | 指向输出图片的指针。 | 
264
265**返回:**
266
267- 如果图片处理成功,则返回IMAGE_PROCESSING_SUCCESS。
268- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
269- 当图片为空时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。 
270- 当图片的某些属性无效时,返回IMAGE_PROCESSING_ERROR_INVALID_VALUE,例如图片的色彩空间时不支持的。 
271- 当该图片处理不支持时,返回IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 
272- 当该图片处理中返回错误时,返回IMAGE_PROCESSING_ERROR_PROCESS_FAILED。 
273- 当内存分配失败时,返回IMAGE_PROCESSING_ERROR_NO_MEMORY。
274
275
276### OH_ImageProcessing_ConvertColorSpace()
277
278```
279ImageProcessing_ErrorCode OH_ImageProcessing_ConvertColorSpace(OH_ImageProcessing* imageProcessor, OH_PixelmapNative* sourceImage, OH_PixelmapNative* destinationImage)
280```
281
282**描述**
283
284实现单层图片间转换。
285
286此函数包括HDR图片到SDR图片的色彩空间转换,SDR图片到HDR图片的色彩空间转换,SDR图片到SDR图片的色彩空间转换和HDR图片的色彩空间转换。
287
288**起始版本:** 13
289
290**参数:**
291
292| 名称 | 描述 | 
293| -------- | -------- |
294| imageProcessor | 指向图片处理模块实例的指针。该实例应该由[IMAGE_PROCESSING_TYPE_COLOR_SPACE_CONVERSION](#image_processing_type_color_space_conversion)类型创建。 | 
295| sourceImage | 指向输入图片的指针。 | 
296| destinationImage | 指向输出图片的指针。 | 
297
298**返回:**
299
300- 如果图片处理成功,则返回IMAGE_PROCESSING_SUCCESS。 
301- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
302- 当图片为空时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。 
303- 当图片的某些属性无效时,返回IMAGE_PROCESSING_ERROR_INVALID_VALUE,例如图片的色彩空间时不支持的。 
304- 当该图片处理不支持时,返回IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 
305- 当该图片处理中返回错误时,返回IMAGE_PROCESSING_ERROR_PROCESS_FAILED。 
306- 当内存分配失败时,返回IMAGE_PROCESSING_ERROR_NO_MEMORY。
307
308
309### OH_ImageProcessing_Create()
310
311```
312ImageProcessing_ErrorCode OH_ImageProcessing_Create(OH_ImageProcessing** imageProcessor, int32_t type)
313```
314
315**描述**
316
317创建一个图片处理模块实例。
318
319**起始版本:** 13
320
321**参数:**
322
323| 名称 | 描述 | 
324| -------- | -------- |
325| imageProcessor | 输出参数。指针\*imageProcessor指向一个新的图片处理对象。 指针\*imageProcessor在传递前必须是一个空指针。 | 
326| type | 使用IMAGE_PROCESSING_TYPE_XXX来指定图片处理类型。此实例的类型在创建后不能更改。 | 
327
328**返回:**
329
330- 如果创建成功,则返回IMAGE_PROCESSING_SUCCESS。 
331- 当指定的图片处理类型不支持时,返回IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING,例如如果不支持图片元数据生成能力,则返回不支持该处理类型。 
332- 当创建失败时,返回IMAGE_PROCESSING_ERROR_CREATE_FAILED。 
333- 当该实例为空或指向该实例的指针为空时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
334- 当指定的图片处理类型无效时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。
335
336
337### OH_ImageProcessing_Decompose()
338
339```
340ImageProcessing_ErrorCode OH_ImageProcessing_Decompose(OH_ImageProcessing* imageProcessor, OH_PixelmapNative* sourceImage, OH_PixelmapNative* destinationImage, OH_PixelmapNative* destinationGainmap)
341```
342
343**描述**
344
345实现HDR单层图片到HDR双层图片的转换。
346
347此函数通过输入图片生成输出图片和输出Gainmap。
348
349**起始版本:** 13
350
351**参数:**
352
353| 名称 | 描述 | 
354| -------- | -------- |
355| imageProcessor | 指向图片处理模块实例的指针。该实例应该由[IMAGE_PROCESSING_TYPE_DECOMPOSITION](#image_processing_type_decomposition)类型创建。 | 
356| sourceImage | 指向输入图片的指针。 | 
357| destinationImage | 指向输出图片的指针。 | 
358| destinationGainmap | 指向输出Gainmap的指针。 | 
359
360**返回:**
361
362- 如果图片处理成功,则返回IMAGE_PROCESSING_SUCCESS。 
363- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
364- 当图片为空时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。 
365- 当图片的某些属性无效时,返回IMAGE_PROCESSING_ERROR_INVALID_VALUE,例如图片的色彩空间时不支持的。 当该图片处理不支持时,返回IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 
366- 当该图片处理中返回错误时,返回IMAGE_PROCESSING_ERROR_PROCESS_FAILED。 
367- 当内存分配失败时,返回IMAGE_PROCESSING_ERROR_NO_MEMORY。
368
369
370### OH_ImageProcessing_DeinitializeEnvironment()
371
372```
373ImageProcessing_ErrorCode OH_ImageProcessing_DeinitializeEnvironment(void)
374```
375
376**描述**
377
378反初始化图片处理模块的全局环境。
379
380如果[OH_ImageProcessing_InitializeEnvironment](#oh_imageprocessing_initializeenvironment)被调用,则此函数为必需函数。 通常此函数在主进程准备退出时被调用,用于反初始化图片处理模块的全局环境(由[OH_ImageProcessing_InitializeEnvironment](#oh_imageprocessing_initializeenvironment)接口 初始化)。 如果此时存在图片处理实例,则不应调用此函数。 如果[OH_ImageProcessing_InitializeEnvironment](#oh_imageprocessing_initializeenvironment)未被调用,则不应调用此函数。
381
382**起始版本:** 13
383
384**返回:**
385
386- 如果反初始化成功,则返回IMAGE_PROCESSING_SUCCESS。 
387- 如果存在图片处理实例未被销毁或[OH_ImageProcessing_InitializeEnvironment](#oh_imageprocessing_initializeenvironment)接口未被调用,则返回 IMAGE_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。
388
389
390### OH_ImageProcessing_Destroy()
391
392```
393ImageProcessing_ErrorCode OH_ImageProcessing_Destroy(OH_ImageProcessing* imageProcessor)
394```
395
396**描述**
397
398销毁当前图片处理模块实例。
399
400**起始版本:** 13
401
402**参数:**
403
404| 名称 | 描述 | 
405| -------- | -------- |
406| imageProcessor | 指向图片处理模块实例的指针。当实例被销毁时,建议该指针设置为空。 | 
407
408**返回:**
409
410- 如果销毁成功,则返回IMAGE_PROCESSING_SUCCESS。 
411- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。
412
413
414### OH_ImageProcessing_EnhanceDetail()
415
416```
417ImageProcessing_ErrorCode OH_ImageProcessing_EnhanceDetail(OH_ImageProcessing* imageProcessor, OH_PixelmapNative* sourceImage, OH_PixelmapNative* destinationImage)
418```
419
420**描述**
421
422进行图片清晰度/细节增强。
423
424此函数根据输入图片和输出图片预设的尺寸,对源图片进行必要的缩放操作生成目标图片,并提供了多种缩放方法以平衡性能和图像质量。
425
426**起始版本:** 13
427
428**参数:**
429
430| 名称 | 描述 | 
431| -------- | -------- |
432| imageProcessor | 指向图片处理模块实例的指针。该实例应该由[IMAGE_PROCESSING_TYPE_DETAIL_ENHANCER](#image_processing_type_detail_enhancer)类型创建。 | 
433| sourceImage | 指向输入图片的指针。 | 
434| destinationImage | 指向输出图片的指针。 | 
435
436**返回:**
437
438- 如果图片处理成功,则返回IMAGE_PROCESSING_SUCCESS。 
439- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
440- 当图片为空时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。 
441- 当图片的某些属性无效时,返回IMAGE_PROCESSING_ERROR_INVALID_VALUE,例如图片的色彩空间时不支持的。 
442- 当该图片处理不支持时,返回IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 
443- 当该图片处理中返回错误时,返回IMAGE_PROCESSING_ERROR_PROCESS_FAILED。 
444- 当内存分配失败时,返回IMAGE_PROCESSING_ERROR_NO_MEMORY。
445
446
447### OH_ImageProcessing_GenerateMetadata()
448
449```
450ImageProcessing_ErrorCode OH_ImageProcessing_GenerateMetadata(OH_ImageProcessing* imageProcessor, OH_PixelmapNative* sourceImage)
451```
452
453**描述**
454
455生成HDR图片元数据。
456
457此函数为HDR图片生成元数据。
458
459**起始版本:** 13
460
461**参数:**
462
463| 名称 | 描述 | 
464| -------- | -------- |
465| imageProcessor | 指向图片处理模块实例的指针。该实例应该由[IMAGE_PROCESSING_TYPE_METADATA_GENERATION](#image_processing_type_metadata_generation)类型创建。 | 
466| sourceImage | 指向输入图片的指针。 | 
467
468**返回:**
469
470- 如果图片处理成功,则返回IMAGE_PROCESSING_SUCCESS。 
471- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
472- 当图片为空时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。 
473- 当图片的某些属性无效时,返回IMAGE_PROCESSING_ERROR_INVALID_VALUE,例如图片的色彩空间时不支持的。 当该图片处理不支持时,返回IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 
474- 当该图片处理中返回错误时,返回IMAGE_PROCESSING_ERROR_PROCESS_FAILED。 
475- 当内存分配失败时,返回IMAGE_PROCESSING_ERROR_NO_MEMORY。
476
477
478### OH_ImageProcessing_GetParameter()
479
480```
481ImageProcessing_ErrorCode OH_ImageProcessing_GetParameter(OH_ImageProcessing* imageProcessor, OH_AVFormat* parameter)
482```
483
484**描述**
485
486获取图片处理模块参数。
487
488通过特定参数键获取参数。
489
490**起始版本:** 13
491
492**参数:**
493
494| 名称 | 描述 | 
495| -------- | -------- |
496| imageProcessor | 指向图片处理模块实例的指针。 | 
497| parameter | 该图片处理模块实例使用的参数。 | 
498
499**返回:**
500
501- 如果获取参数不成功,则返回IMAGE_PROCESSING_SUCCESS。 
502- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
503- 当参数为空时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。
504
505
506### OH_ImageProcessing_InitializeEnvironment()
507
508```
509ImageProcessing_ErrorCode OH_ImageProcessing_InitializeEnvironment(void)
510```
511
512**描述**
513
514初始化图片处理模块的全局环境。
515
516此函数为非必需函数。 通常此函数在主进程启动时被调用,用于图片处理模块的全局环境初始化并可以减少[OH_ImageProcessing_Create](#oh_imageprocessing_create)的耗时。 调用[OH_ImageProcessing_DeinitializeEnvironment](#oh_imageprocessing_deinitializeenvironment)进行全局环境反初始化。 可用于检查设备GPU是否正常工作。
517
518**起始版本:** 13
519
520**返回:**
521
522如果初始化成功,则返回IMAGE_PROCESSING_SUCCESS,否则返回IMAGE_PROCESSING_ERROR_INITIALIZE_FAILED。
523
524
525### OH_ImageProcessing_IsColorSpaceConversionSupported()
526
527```
528bool OH_ImageProcessing_IsColorSpaceConversionSupported(const ImageProcessing_ColorSpaceInfo* sourceImageInfo, const ImageProcessing_ColorSpaceInfo* destinationImageInfo)
529```
530
531**描述**
532
533查询是否支持当前图片色彩空间转换能力。
534
535**起始版本:** 13
536
537**参数:**
538
539| 名称 | 描述 | 
540| -------- | -------- |
541| sourceImageInfo | 指向输入图片色彩空间信息的指针。 | 
542| destinationImageInfo | 指向输出图片色彩空间信息的指针, | 
543
544**返回:**
545
546如果支持当前色彩空间转换,返回true。如果不支持当前色彩空间转换,返回false。
547
548
549### OH_ImageProcessing_IsCompositionSupported()
550
551```
552bool OH_ImageProcessing_IsCompositionSupported(const ImageProcessing_ColorSpaceInfo* sourceImageInfo, const ImageProcessing_ColorSpaceInfo* sourceGainmapInfo, const ImageProcessing_ColorSpaceInfo* destinationImageInfo)
553```
554
555**描述**
556
557查询是否支持HDR双层图片转换为HDR单层图片。
558
559**起始版本:** 13
560
561**参数:**
562
563| 名称 | 描述 | 
564| -------- | -------- |
565| sourceImageInfo | 指向输入图片色彩空间信息的指针。 | 
566| sourceGainmapInfo | 指向输入Gainmap色彩空间信息的指针。 | 
567| destinationImageInfo | 指向输出图片色彩空间信息的指针。 | 
568
569**返回:**
570
571如果支持HDR双层图片转换HDR单层图片能力,返回true。如果不支持此能力,返回false。
572
573
574### OH_ImageProcessing_IsDecompositionSupported()
575
576```
577bool OH_ImageProcessing_IsDecompositionSupported(const ImageProcessing_ColorSpaceInfo* sourceImageInfo, const ImageProcessing_ColorSpaceInfo* destinationImageInfo, const ImageProcessing_ColorSpaceInfo* destinationGainmapInfo)
578```
579
580**描述**
581
582查询是否支持HDR单层图片转换为HDR双层图片。
583
584**起始版本:** 13
585
586**参数:**
587
588| 名称 | 描述 | 
589| -------- | -------- |
590| sourceImageInfo | 指向输入图片色彩空间信息的指针。 | 
591| destinationImageInfo | 指向输出图片色彩空间信息的指针。 | 
592| destinationGainmapInfo | 指向输出Gainmap色彩空间信息的指针。 | 
593
594**返回:**
595
596如果支持HDR单层图片转换为HDR双层图片能力,返回true。如果不支持此能力,返回false。
597
598
599### OH_ImageProcessing_IsMetadataGenerationSupported()
600
601```
602bool OH_ImageProcessing_IsMetadataGenerationSupported(const ImageProcessing_ColorSpaceInfo* sourceImageInfo)
603```
604
605**描述**
606
607查询是否支持图片元数据生成能力。
608
609**起始版本:** 13
610
611**参数:**
612
613| 名称 | 描述 | 
614| -------- | -------- |
615| sourceImageInfo | 指向输入图片色彩空间信息的指针。 | 
616
617**返回:**
618
619如果支持图片元数据生成能力,返回true。如果不支持此能力,返回false。
620
621
622### OH_ImageProcessing_SetParameter()
623
624```
625ImageProcessing_ErrorCode OH_ImageProcessing_SetParameter(OH_ImageProcessing* imageProcessor, const OH_AVFormat* parameter)
626```
627
628**描述**
629
630设置图片处理模块参数。
631
632通过特定参数键添加参数。
633
634**起始版本:** 13
635
636**参数:**
637
638| 名称 | 描述 | 
639| -------- | -------- |
640| imageProcessor | 指向图片处理模块实例的指针。 | 
641| parameter | 图片处理参数。 | 
642
643**返回:**
644
645- 如果设置参数成功,则返回IMAGE_PROCESSING_SUCCESS。 
646- 当该实例为空或该实例不是图片处理模块实例时,返回IMAGE_PROCESSING_ERROR_INVALID_INSTANCE。 
647- 当参数为空时,返回IMAGE_PROCESSING_ERROR_INVALID_PARAMETER。 
648- 当部分参数无效时,返回IMAGE_PROCESSING_ERROR_INVALID_VALUE,例如参数包含不支持的参数键或值。 
649- 当内存分配失败时,返回IMAGE_PROCESSING_ERROR_NO_MEMORY。
650
651
652## 变量说明
653
654
655### IMAGE_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL
656
657```
658const char* IMAGE_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL
659```
660
661**描述**
662
663用于设定图像细节增强的质量级别。
664
665使用[ImageDetailEnhancer_QualityLevel](#imagedetailenhancer_qualitylevel)获取其值。 使用[OH_ImageProcessing_SetParameter](#oh_imageprocessing_setparameter)设置质量级别。 使用[OH_ImageProcessing_GetParameter](#oh_imageprocessing_getparameter)获取当前质量级别。
666
667**起始版本:** 13
668
669**参见:**
670
671[OH_VideoProcessing_SetParameter](../apis-media-kit/_video_processing.md#oh_videoprocessing_setparameter)
672
673[OH_VideoProcessing_GetParameter](../apis-media-kit/_video_processing.md#oh_videoprocessing_getparameter)
674
675
676### IMAGE_PROCESSING_TYPE_COLOR_SPACE_CONVERSION
677
678```
679const int32_t IMAGE_PROCESSING_TYPE_COLOR_SPACE_CONVERSION
680```
681
682**描述**
683
684用于创建色彩空间转换的图片处理实例。
685
686色彩空间转换包括单层HDR图片转换SDR图片,SDR图片之间的转换,以及SDR图片转换单层HDR图片,部分能力由厂商支持。 使用**OH_ImageProcessing_IsColorSpaceConversionSuported**查询某种转换是否支持在单层图片之间进行。
687
688**起始版本:** 13
689
690**参见:**
691
692[OH_ImageProcessing_Create](#oh_imageprocessing_create)
693
694
695### IMAGE_PROCESSING_TYPE_COMPOSITION
696
697```
698const int32_t IMAGE_PROCESSING_TYPE_COMPOSITION
699```
700
701**描述**
702
703用于创建双层HDR图片转换单层HDR图片的图片处理实例。
704
705包括从双层HDR图片转换为单层HDR图片的能力。部分能力由厂商支持。 使用[OH_ImageProcessing_IsCompositionSupported](#oh_imageprocessing_iscompositionsupported)查询是否支持从双层HDR图片到单层HDR图片的转换。
706
707**起始版本:** 13
708
709**参见:**
710
711[OH_ImageProcessing_Create](#oh_imageprocessing_create)
712
713
714### IMAGE_PROCESSING_TYPE_DECOMPOSITION
715
716```
717const int32_t IMAGE_PROCESSING_TYPE_DECOMPOSITION
718```
719
720**描述**
721
722用于创建单层HDR图片转换双层HDR图片的图片处理实例。
723
724包括从单层HDR图片转换为双层HDR图片的能力。部分能力由厂商支持。 使用[OH_ImageProcessing_IsDecompositionSupported](#oh_imageprocessing_isdecompositionsupported)查询是否支持从单层HDR图片到双层HDR图片的转换。
725
726**起始版本:** 13
727
728**参见:**
729
730[OH_ImageProcessing_Create](#oh_imageprocessing_create)
731
732
733### IMAGE_PROCESSING_TYPE_DETAIL_ENHANCER
734
735```
736const int32_t IMAGE_PROCESSING_TYPE_DETAIL_ENHANCER
737```
738
739**描述**
740
741用于创建细节增强的图片处理实例。
742
743按指定图像质量缩放或调整图片大小,或仅增强图像细节以在不更改分辨率的情况下渲染图片。
744
745**起始版本:** 13
746
747**参见:**
748
749[OH_ImageProcessing_Create](#oh_imageprocessing_create)
750
751
752### IMAGE_PROCESSING_TYPE_METADATA_GENERATION
753
754```
755const int32_t IMAGE_PROCESSING_TYPE_METADATA_GENERATION
756```
757
758**描述**
759
760用于创建元数据生成的图片处理实例。
761
762生成单层HDR图片的HDR Vivid元数据。该能力由厂商支持。如果不支持该能力,[OH_ImageProcessing_Create](#oh_imageprocessing_create)将返回 IMAGE_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。
763
764**起始版本:** 13
765
766**参见:**
767
768[OH_ImageProcessing_Create](#oh_imageprocessing_create)
769