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