1# ImageEffect
2
3
4## 概述
5
6提供图片编辑能力。
7
8**起始版本:** 12
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 | 
17| -------- | -------- |
18| [image_effect.h](image__effect_8h.md) | 声明效果器相关接口。 | 
19| [image_effect_errors.h](image__effect__errors_8h.md) | 声明图片效果器错误码。 | 
20| [image_effect_filter.h](image__effect__filter_8h.md) | 声明滤镜相关接口。 | 
21
22
23### 结构体
24
25| 名称 | 描述 | 
26| -------- | -------- |
27| union  [ImageEffect_DataValue](union_image_effect___data_value.md) | 数据值联合体。 | 
28| struct  [ImageEffect_Any](_image_effect___any.md) | 参数结构体。 | 
29| struct  [ImageEffect_FilterNames](_image_effect___filter_names.md) | 滤镜名信息。 | 
30| struct  [ImageEffect_FilterDelegate](_image_effect___filter_delegate.md) | 自定义滤镜回调函数结构体。 | 
31| struct  [ImageEffect_Region](_image_effect___region.md) | 图像区域结构体。 | 
32| struct  [ImageEffect_Size](_image_effect___size.md) | 图像尺寸结构体。 | 
33
34
35### 宏定义
36
37| 名称 | 描述 | 
38| -------- | -------- |
39| [OH_EFFECT_BRIGHTNESS_FILTER](#oh_effect_brightness_filter)   "Brightness" | 亮度滤镜,对应的参数为OH_EFFECT_FILTER_INTENSITY_KEY,参数类型为EFFECT_DATA_TYPE_FLOAT。 | 
40| [OH_EFFECT_CONTRAST_FILTER](#oh_effect_contrast_filter)   "Contrast" | 对比度滤镜,对应的参数为OH_EFFECT_FILTER_INTENSITY_KEY,参数类型为EFFECT_DATA_TYPE_FLOAT。 | 
41| [OH_EFFECT_CROP_FILTER](#oh_effect_crop_filter)   "Crop" | 裁剪滤镜,对应的参数为OH_EFFECT_FILTER_REGION_KEY,参数类型为EFFECT_DATA_TYPE_PTR, 参数值为结构体 [ImageEffect_Region](_image_effect___region.md)。 | 
42| [OH_EFFECT_FILTER_INTENSITY_KEY](#oh_effect_filter_intensity_key)   "FilterIntensity" | 强度参数。 | 
43| [OH_EFFECT_FILTER_REGION_KEY](#oh_effect_filter_region_key)   "FilterRegion" | 图像区域参数。 | 
44
45
46### 类型定义
47
48| 名称 | 描述 | 
49| -------- | -------- |
50| typedef struct [OH_ImageEffect](#oh_imageeffect) [OH_ImageEffect](#oh_imageeffect) | 定义效果器结构类型。 | 
51| typedef enum [ImageEffect_ErrorCode](#imageeffect_errorcode-1) [ImageEffect_ErrorCode](#imageeffect_errorcode) | 效果器错误码。 | 
52| typedef struct [OH_EffectFilter](#oh_effectfilter) [OH_EffectFilter](#oh_effectfilter) | 定义滤镜结构类型。 | 
53| typedef enum [ImageEffect_DataType](#imageeffect_datatype) [ImageEffect_DataType](#imageeffect_datatype) | 数据类型枚举值。 | 
54| typedef union [ImageEffect_DataValue](union_image_effect___data_value.md) [ImageEffect_DataValue](#imageeffect_datavalue) | 数据值联合体。 | 
55| typedef struct [ImageEffect_Any](_image_effect___any.md) [ImageEffect_Any](#imageeffect_any) | 参数结构体。 | 
56| typedef enum [ImageEffect_Format](#imageeffect_format-1) [ImageEffect_Format](#imageeffect_format) | 像素格式枚举值。 | 
57| typedef enum [ImageEffect_BufferType](#imageeffect_buffertype-1) [ImageEffect_BufferType](#imageeffect_buffertype) | 内存类型枚举值。 | 
58| typedef struct [OH_EffectFilterInfo](#oh_effectfilterinfo) [OH_EffectFilterInfo](#oh_effectfilterinfo) | 定义滤镜信息结构体。 | 
59| typedef struct [ImageEffect_FilterNames](_image_effect___filter_names.md) [ImageEffect_FilterNames](#imageeffect_filternames) | 滤镜名信息。 | 
60| typedef struct [OH_EffectBufferInfo](#oh_effectbufferinfo) [OH_EffectBufferInfo](#oh_effectbufferinfo) | 定义图像信息。 | 
61| typedef bool(\* [OH_EffectFilterDelegate_SetValue](#oh_effectfilterdelegate_setvalue)) ([OH_EffectFilter](#oh_effectfilter) \*filter, const char \*key, const [ImageEffect_Any](_image_effect___any.md) \*value) | 自定义滤镜设置参数的回调函数,用于开发者校验参数及参数值。 | 
62| typedef void(\* [OH_EffectFilterDelegate_PushData](#oh_effectfilterdelegate_pushdata)) ([OH_EffectFilter](#oh_effectfilter) \*filter, [OH_EffectBufferInfo](#oh_effectbufferinfo) \*info) | 自定义滤镜传递图像信息到下一级滤镜的函数指针。 | 
63| typedef bool(\* [OH_EffectFilterDelegate_Render](#oh_effectfilterdelegate_render)) ([OH_EffectFilter](#oh_effectfilter) \*filter, [OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, [OH_EffectFilterDelegate_PushData](#oh_effectfilterdelegate_pushdata) pushData) | 自定义滤镜渲染图像的回调函数。 | 
64| typedef bool(\* [OH_EffectFilterDelegate_Save](#oh_effectfilterdelegate_save)) ([OH_EffectFilter](#oh_effectfilter) \*filter, char \*\*info) | 自定义滤镜序列化的回调函数,按照JSON格式进行滤镜序列化处理。 | 
65| typedef [OH_EffectFilter](#oh_effectfilter) \*(\* [OH_EffectFilterDelegate_Restore](#oh_effectfilterdelegate_restore)) (const char \*info) | 自定义滤镜反序列化的回调函数。 | 
66| typedef struct [ImageEffect_FilterDelegate](_image_effect___filter_delegate.md) [ImageEffect_FilterDelegate](#imageeffect_filterdelegate) | 自定义滤镜回调函数结构体。 | 
67| typedef struct [ImageEffect_Region](_image_effect___region.md) [ImageEffect_Region](#imageeffect_region) | 图像区域结构体。 | 
68| typedef struct [ImageEffect_Size](_image_effect___size.md) [ImageEffect_Size](#imageeffect_size) | 图像尺寸结构体。 | 
69
70
71### 枚举
72
73| 名称 | 描述 | 
74| -------- | -------- |
75| [ImageEffect_ErrorCode](#imageeffect_errorcode-1) {<br/>EFFECT_SUCCESS = 0, EFFECT_ERROR_PERMISSION_DENIED = 201,<br/>EFFECT_ERROR_PARAM_INVALID = 401, EFFECT_BUFFER_SIZE_NOT_MATCH = 29000001,<br/>EFFECT_COLOR_SPACE_NOT_MATCH = 29000002, EFFECT_INPUT_OUTPUT_NOT_MATCH = 29000101,<br/>EFFECT_EFFECT_NUMBER_LIMITED = 29000102, EFFECT_INPUT_OUTPUT_NOT_SUPPORTED = 29000103,<br/>EFFECT_ALLOCATE_MEMORY_FAILED = 29000104, EFFECT_PARAM_ERROR = 29000121,<br/>EFFECT_KEY_ERROR = 29000122, EFFECT_UNKNOWN = 29000199<br/>} | 效果器错误码。 | 
76| [ImageEffect_DataType](#imageeffect_datatype-1) {<br/>EFFECT_DATA_TYPE_UNKNOWN = 0, EFFECT_DATA_TYPE_INT32 = 1,<br/>EFFECT_DATA_TYPE_FLOAT = 2, EFFECT_DATA_TYPE_DOUBLE = 3,<br/>EFFECT_DATA_TYPE_CHAR = 4, EFFECT_DATA_TYPE_LONG = 5,<br/>EFFECT_DATA_TYPE_BOOL = 6, EFFECT_DATA_TYPE_PTR = 7<br/>} | 数据类型枚举值。 | 
77| [ImageEffect_Format](#imageeffect_format-1) {<br/>EFFECT_PIXEL_FORMAT_UNKNOWN = 0, EFFECT_PIXEL_FORMAT_RGBA8888 = 1,<br/>EFFECT_PIXEL_FORMAT_NV21 = 2, EFFECT_PIXEL_FORMAT_NV12 = 3,<br/>EFFECT_PIXEL_FORMAT_RGBA1010102 = 4, EFFECT_PIXEL_FORMAT_YCBCR_P010 = 5,<br/>EFFECT_PIXEL_FORMAT_YCRCB_P010 = 6<br/>} | 像素格式枚举值。 | 
78| [ImageEffect_BufferType](#imageeffect_buffertype-1) { EFFECT_BUFFER_TYPE_UNKNOWN = 0,<br/>EFFECT_BUFFER_TYPE_PIXEL = 1, EFFECT_BUFFER_TYPE_TEXTURE = 2 } | 内存类型枚举值。 | 
79
80
81### 函数
82
83| 名称 | 描述 | 
84| -------- | -------- |
85| [OH_ImageEffect](#oh_imageeffect) \* [OH_ImageEffect_Create](#oh_imageeffect_create) (const char \*name) | 创建OH_ImageEffect实例,调用[OH_ImageEffect_Release](#oh_imageeffect_release)进行资源释放。 | 
86| [OH_EffectFilter](#oh_effectfilter) \* [OH_ImageEffect_AddFilter](#oh_imageeffect_addfilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, const char \*filterName) | 添加滤镜。 | 
87| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_AddFilterByFilter](#oh_imageeffect_addfilterbyfilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, [OH_EffectFilter](#oh_effectfilter) \*filter) | 添加指定滤镜。  | 
88| [OH_EffectFilter](#oh_effectfilter) \* [OH_ImageEffect_InsertFilter](#oh_imageeffect_insertfilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, uint32_t index, const char \*filterName) | 插入滤镜。 | 
89| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_InsertFilterByFilter](#oh_imageeffect_insertfilterbyfilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, uint32_t index, [OH_EffectFilter](#oh_effectfilter) \*filter) | 按指定位置插入滤镜。  | 
90| int32_t [OH_ImageEffect_RemoveFilter](#oh_imageeffect_removefilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, const char \*filterName) | 移除滤镜。 | 
91| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_RemoveFilterByIndex](#oh_imageeffect_removefilterbyindex) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, uint32_t index) | 移除指定位置滤镜。  | 
92| [OH_EffectFilter](#oh_effectfilter) \* [OH_ImageEffect_ReplaceFilter](#oh_imageeffect_replacefilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, uint32_t index, const char \*filterName) | 替换滤镜。  | 
93| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_ReplaceFilterByFilter](#oh_imageeffect_replacefilterbyfilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, uint32_t index, const char \*filterName) | 替换指定位置滤镜。  | 
94| int32_t [OH_ImageEffect_GetFilterCount](#oh_imageeffect_getfiltercount) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect) | 查询已添加滤镜个数。 | 
95| [OH_EffectFilter](#oh_effectfilter) \* [OH_ImageEffect_GetFilter](#oh_imageeffect_getfilter) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, uint32_t index) | 查询已添加滤镜。 | 
96| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_Configure](#oh_imageeffect_configure) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, const char \*key, const [ImageEffect_Any](_image_effect___any.md) \*value) | 设置配置信息。 | 
97| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetOutputSurface](#oh_imageeffect_setoutputsurface) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OHNativeWindow \*nativeWindow) | 设置输出Surface。 | 
98| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_GetInputSurface](#oh_imageeffect_getinputsurface) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OHNativeWindow \*\*nativeWindow) | 获取输入Surface。 | 
99| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetInputPixelmap](#oh_imageeffect_setinputpixelmap) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OH_PixelmapNative \*pixelmap) | 设置输入的Pixelmap。 | 
100| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetOutputPixelmap](#oh_imageeffect_setoutputpixelmap) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OH_PixelmapNative \*pixelmap) | 设置输出的Pixelmap。 | 
101| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetInputNativeBuffer](#oh_imageeffect_setinputnativebuffer) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OH_NativeBuffer \*nativeBuffer) | 设置输入的NativeBuffer。 | 
102| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetOutputNativeBuffer](#oh_imageeffect_setoutputnativebuffer) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OH_NativeBuffer \*nativeBuffer) | 设置输出的NativeBuffer。 | 
103| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetInputUri](#oh_imageeffect_setinputuri) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, const char \*uri) | 设置输入的URI。 | 
104| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetOutputUri](#oh_imageeffect_setoutputuri) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, const char \*uri) | 设置输出的URI。 | 
105| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetInputPicture](#oh_imageeffect_setinputpicture) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OH_PictureNative \*picture) | 设置输入的Picture。  | 
106| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_SetOutputPicture](#oh_imageeffect_setoutputpicture) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, OH_PictureNative \*picture) | 设置输出的Picture。  | 
107| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_Start](#oh_imageeffect_start) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect) | 启动效果器。 | 
108| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_Stop](#oh_imageeffect_stop) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect) | 停止生效效果。 | 
109| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_Release](#oh_imageeffect_release) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect) | 释放OH_ImageEffect实例资源。 | 
110| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_ImageEffect_Save](#oh_imageeffect_save) ([OH_ImageEffect](#oh_imageeffect) \*imageEffect, char \*\*info) | 序列化效果器。 | 
111| [OH_ImageEffect](#oh_imageeffect) \* [OH_ImageEffect_Restore](#oh_imageeffect_restore) (const char \*info) | 反序列化效果器。 | 
112| [OH_EffectFilterInfo](#oh_effectfilterinfo) \* [OH_EffectFilterInfo_Create](#oh_effectfilterinfo_create) () | 创建OH_EffectFilterInfo实例,调用[OH_EffectFilterInfo_Release](#oh_effectfilterinfo_release)进行资源释放。 | 
113| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilterInfo_SetFilterName](#oh_effectfilterinfo_setfiltername) ([OH_EffectFilterInfo](#oh_effectfilterinfo) \*info, const char \*name) | 设置滤镜名。 | 
114| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilterInfo_GetFilterName](#oh_effectfilterinfo_getfiltername) ([OH_EffectFilterInfo](#oh_effectfilterinfo) \*info, char \*\*name) | 获取滤镜名。 | 
115| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilterInfo_SetSupportedBufferTypes](#oh_effectfilterinfo_setsupportedbuffertypes) ([OH_EffectFilterInfo](#oh_effectfilterinfo) \*info, uint32_t size, [ImageEffect_BufferType](#imageeffect_buffertype) \*bufferTypeArray) | 设置滤镜所支持的内存类型。 | 
116| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilterInfo_GetSupportedBufferTypes](#oh_effectfilterinfo_getsupportedbuffertypes) ([OH_EffectFilterInfo](#oh_effectfilterinfo) \*info, uint32_t \*size, [ImageEffect_BufferType](#imageeffect_buffertype) \*\*bufferTypeArray) | 获取滤镜所支持的内存类型。 | 
117| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilterInfo_SetSupportedFormats](#oh_effectfilterinfo_setsupportedformats) ([OH_EffectFilterInfo](#oh_effectfilterinfo) \*info, uint32_t size, [ImageEffect_Format](#imageeffect_format) \*formatArray) | 设置滤镜所支持的像素格式。 | 
118| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilterInfo_GetSupportedFormats](#oh_effectfilterinfo_getsupportedformats) ([OH_EffectFilterInfo](#oh_effectfilterinfo) \*info, uint32_t \*size, [ImageEffect_Format](#imageeffect_format) \*\*formatArray) | 获取滤镜所支持的像素格式。 | 
119| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilterInfo_Release](#oh_effectfilterinfo_release) ([OH_EffectFilterInfo](#oh_effectfilterinfo) \*info) | 销毁OH_EffectFilterInfo实例。 | 
120| [OH_EffectBufferInfo](#oh_effectbufferinfo) \* [OH_EffectBufferInfo_Create](#oh_effectbufferinfo_create) () | 创建OH_EffectBufferInfo实例,调用[OH_EffectBufferInfo_Release](#oh_effectbufferinfo_release)进行资源释放。 | 
121| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_SetAddr](#oh_effectbufferinfo_setaddr) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, void \*addr) | 设置图像内存地址。 | 
122| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_GetAddr](#oh_effectbufferinfo_getaddr) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, void \*\*addr) | 获取图像内存地址。 | 
123| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_SetWidth](#oh_effectbufferinfo_setwidth) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, int32_t width) | 设置图像宽度。 | 
124| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_GetWidth](#oh_effectbufferinfo_getwidth) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, int32_t \*width) | 获取图像宽度。 | 
125| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_SetHeight](#oh_effectbufferinfo_setheight) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, int32_t height) | 设置图像高度。 | 
126| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_GetHeight](#oh_effectbufferinfo_getheight) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, int32_t \*height) | 获取图像高度。 | 
127| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_SetRowSize](#oh_effectbufferinfo_setrowsize) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, int32_t rowSize) | 设置图像每一行的字节数。 | 
128| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_GetRowSize](#oh_effectbufferinfo_getrowsize) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, int32_t \*rowSize) | 获取图像每一行的字节数。 | 
129| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_SetEffectFormat](#oh_effectbufferinfo_seteffectformat) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, [ImageEffect_Format](#imageeffect_format) format) | 设置图像的像素格式。 | 
130| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_GetEffectFormat](#oh_effectbufferinfo_geteffectformat) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info, [ImageEffect_Format](#imageeffect_format) \*format) | 获取图像的像素格式。 | 
131| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectBufferInfo_Release](#oh_effectbufferinfo_release) ([OH_EffectBufferInfo](#oh_effectbufferinfo) \*info) | 销毁OH_EffectBufferInfo实例。 | 
132| [OH_EffectFilter](#oh_effectfilter) \* [OH_EffectFilter_Create](#oh_effectfilter_create) (const char \*name) | 创建OH_EffectFilter实例,调用[OH_EffectFilter_Release](#oh_effectfilter_release)进行资源释放。 | 
133| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilter_SetValue](#oh_effectfilter_setvalue) ([OH_EffectFilter](#oh_effectfilter) \*filter, const char \*key, const [ImageEffect_Any](_image_effect___any.md) \*value) | 设置滤镜参数。 | 
134| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilter_GetValue](#oh_effectfilter_getvalue) ([OH_EffectFilter](#oh_effectfilter) \*filter, const char \*key, [ImageEffect_Any](_image_effect___any.md) \*value) | 获取滤镜参数。 | 
135| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilter_Register](#oh_effectfilter_register) (const [OH_EffectFilterInfo](#oh_effectfilterinfo) \*info, const [ImageEffect_FilterDelegate](_image_effect___filter_delegate.md) \*delegate) | 注册自定义滤镜。 | 
136| [ImageEffect_FilterNames](_image_effect___filter_names.md) \* [OH_EffectFilter_LookupFilters](#oh_effectfilter_lookupfilters) (const char \*key) | 查询满足条件的滤镜。 | 
137| void [OH_EffectFilter_ReleaseFilterNames](#oh_effectfilter_releasefilternames) () | 释放滤镜名内存资源。 | 
138| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilter_LookupFilterInfo](#oh_effectfilter_lookupfilterinfo) (const char \*name, [OH_EffectFilterInfo](#oh_effectfilterinfo) \*info) | 查询滤镜信息。 | 
139| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilter_Render](#oh_effectfilter_render) ([OH_EffectFilter](#oh_effectfilter) \*filter, OH_PixelmapNative \*inputPixelmap, OH_PixelmapNative \*outputPixelmap) | 执行图像渲染。 | 
140| [ImageEffect_ErrorCode](#imageeffect_errorcode) [OH_EffectFilter_Release](#oh_effectfilter_release) ([OH_EffectFilter](#oh_effectfilter) \*filter) | 销毁OH_EffectFilter实例。 | 
141
142
143## 宏定义说明
144
145
146### OH_EFFECT_BRIGHTNESS_FILTER
147
148```
149#define OH_EFFECT_BRIGHTNESS_FILTER   "Brightness"
150```
151
152**描述**
153
154亮度滤镜,对应的参数为OH_EFFECT_FILTER_INTENSITY_KEY,参数类型为EFFECT_DATA_TYPE_FLOAT。
155
156**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
157
158**起始版本:** 12
159
160
161### OH_EFFECT_CONTRAST_FILTER
162
163```
164#define OH_EFFECT_CONTRAST_FILTER   "Contrast"
165```
166
167**描述**
168
169对比度滤镜,对应的参数为OH_EFFECT_FILTER_INTENSITY_KEY,参数类型为EFFECT_DATA_TYPE_FLOAT。
170
171**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
172
173**起始版本:** 12
174
175
176### OH_EFFECT_CROP_FILTER
177
178```
179#define OH_EFFECT_CROP_FILTER   "Crop"
180```
181
182**描述**
183
184裁剪滤镜,对应的参数为OH_EFFECT_FILTER_REGION_KEY,参数类型为EFFECT_DATA_TYPE_PTR, 参数值为结构体 [ImageEffect_Region](_image_effect___region.md)。
185
186**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
187
188**起始版本:** 12
189
190
191### OH_EFFECT_FILTER_INTENSITY_KEY
192
193```
194#define OH_EFFECT_FILTER_INTENSITY_KEY   "FilterIntensity"
195```
196
197**描述**
198
199强度参数。
200
201**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
202
203**起始版本:** 12
204
205
206### OH_EFFECT_FILTER_REGION_KEY
207
208```
209#define OH_EFFECT_FILTER_REGION_KEY   "FilterRegion"
210```
211
212**描述**
213
214图像区域参数。
215
216**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
217
218**起始版本:** 12
219
220
221## 类型定义说明
222
223
224### ImageEffect_Any
225
226```
227typedef struct ImageEffect_Any ImageEffect_Any
228```
229
230**描述**
231
232参数结构体。
233
234**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
235
236**起始版本:** 12
237
238
239### ImageEffect_BufferType
240
241```
242typedef enum ImageEffect_BufferType ImageEffect_BufferType
243```
244
245**描述**
246
247内存类型枚举值。
248
249**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
250
251**起始版本:** 12
252
253
254### ImageEffect_DataType
255
256```
257typedef enum ImageEffect_DataType ImageEffect_DataType
258```
259
260**描述**
261
262数据类型枚举值。
263
264**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
265
266**起始版本:** 12
267
268
269### ImageEffect_DataValue
270
271```
272typedef union ImageEffect_DataValue ImageEffect_DataValue
273```
274
275**描述**
276
277数据值联合体。
278
279**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
280
281**起始版本:** 12
282
283
284### ImageEffect_ErrorCode
285
286```
287typedef enum ImageEffect_ErrorCode ImageEffect_ErrorCode
288```
289
290**描述**
291
292效果器错误码。
293
294**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
295
296**起始版本:** 12
297
298
299### ImageEffect_FilterDelegate
300
301```
302typedef struct ImageEffect_FilterDelegate ImageEffect_FilterDelegate
303```
304
305**描述**
306
307自定义滤镜回调函数结构体。
308
309**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
310
311**起始版本:** 12
312
313
314### ImageEffect_FilterNames
315
316```
317typedef struct ImageEffect_FilterNames ImageEffect_FilterNames
318```
319
320**描述**
321
322滤镜名信息。
323
324**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
325
326**起始版本:** 12
327
328
329### ImageEffect_Format
330
331```
332typedef enum ImageEffect_Format ImageEffect_Format
333```
334
335**描述**
336
337像素格式枚举值。
338
339**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
340
341**起始版本:** 12
342
343
344### ImageEffect_Region
345
346```
347typedef struct ImageEffect_Region ImageEffect_Region
348```
349
350**描述**
351
352图像区域结构体。
353
354**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
355
356**起始版本:** 12
357
358
359### ImageEffect_Size
360
361```
362typedef struct ImageEffect_Size ImageEffect_Size
363```
364
365**描述**
366
367图像尺寸结构体。
368
369**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
370
371**起始版本:** 12
372
373
374### OH_EffectBufferInfo
375
376```
377typedef struct OH_EffectBufferInfo OH_EffectBufferInfo
378```
379
380**描述**
381
382定义图像信息。
383
384**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
385
386**起始版本:** 12
387
388
389### OH_EffectFilter
390
391```
392typedef struct OH_EffectFilter OH_EffectFilter
393```
394
395**描述**
396
397定义滤镜结构类型。
398
399**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
400
401**起始版本:** 12
402
403
404### OH_EffectFilterDelegate_PushData
405
406```
407typedef void(* OH_EffectFilterDelegate_PushData) (OH_EffectFilter *filter, OH_EffectBufferInfo *info)
408```
409
410**描述**
411
412自定义滤镜传递图像信息到下一级滤镜的函数指针。需要在[OH_EffectFilterDelegate_Render](#oh_effectfilterdelegate_render) 的回调中主动调用该函数指针。
413
414**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
415
416**起始版本:** 12
417
418**参数:**
419
420| 名称 | 描述 | 
421| -------- | -------- |
422| filter | 滤镜指针。 | 
423| info | 图像信息[OH_EffectBufferInfo](#oh_effectbufferinfo)指针。 | 
424
425
426### OH_EffectFilterDelegate_Render
427
428```
429typedef bool(* OH_EffectFilterDelegate_Render) (OH_EffectFilter *filter, OH_EffectBufferInfo *info, OH_EffectFilterDelegate_PushData pushData)
430```
431
432**描述**
433
434自定义滤镜渲染图像的回调函数。
435
436**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
437
438**起始版本:** 12
439
440**参数:**
441
442| 名称 | 描述 | 
443| -------- | -------- |
444| filter | 滤镜指针。 | 
445| info | 图像信息[OH_EffectBufferInfo](#oh_effectbufferinfo)指针。 | 
446| pushData | 自定义滤镜传递图像信息到下一级滤镜的函数指针[OH_EffectFilterDelegate_PushData](#oh_effectfilterdelegate_pushdata)。 | 
447
448**返回:**
449
450执行成功时返回true,否则返回false。
451
452
453### OH_EffectFilterDelegate_Restore
454
455```
456typedef OH_EffectFilter*(* OH_EffectFilterDelegate_Restore) (const char *info)
457```
458
459**描述**
460
461自定义滤镜反序列化的回调函数。
462
463**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
464
465**起始版本:** 12
466
467**参数:**
468
469| 名称 | 描述 | 
470| -------- | -------- |
471| info | 序列化JSON字符串。 | 
472
473**返回:**
474
475执行成功时返回OH_EffectFilter实例,否则返回空指针。
476
477
478### OH_EffectFilterDelegate_Save
479
480```
481typedef bool(* OH_EffectFilterDelegate_Save) (OH_EffectFilter *filter, char **info)
482```
483
484**描述**
485
486自定义滤镜序列化的回调函数,按照JSON格式进行滤镜序列化处理。
487
488**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
489
490**起始版本:** 12
491
492**参数:**
493
494| 名称 | 描述 | 
495| -------- | -------- |
496| filter | 滤镜指针。 | 
497| info | 指向char数组的指针,返回序列化JSON字符串。 | 
498
499**返回:**
500
501执行成功时返回true,否则返回false。
502
503
504### OH_EffectFilterDelegate_SetValue
505
506```
507typedef bool(* OH_EffectFilterDelegate_SetValue) (OH_EffectFilter *filter, const char *key, const ImageEffect_Any *value)
508```
509
510**描述**
511
512自定义滤镜设置参数的回调函数,用于开发者校验参数及参数值。
513
514**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
515
516**起始版本:** 12
517
518**参数:**
519
520| 名称 | 描述 | 
521| -------- | -------- |
522| filter | 滤镜指针。 | 
523| key | 滤镜参数。 | 
524| value | 滤镜参数值。 | 
525
526**返回:**
527
528参数有效时返回true,否则返回false。
529
530
531### OH_EffectFilterInfo
532
533```
534typedef struct OH_EffectFilterInfo OH_EffectFilterInfo
535```
536
537**描述**
538
539定义滤镜信息结构体。
540
541**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
542
543**起始版本:** 12
544
545
546### OH_ImageEffect
547
548```
549typedef struct OH_ImageEffect OH_ImageEffect
550```
551
552**描述**
553
554定义效果器结构类型。
555
556**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
557
558**起始版本:** 12
559
560
561## 枚举类型说明
562
563
564### ImageEffect_BufferType
565
566```
567enum ImageEffect_BufferType
568```
569
570**描述**
571
572内存类型枚举值。
573
574**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
575
576**起始版本:** 12
577
578| 枚举值 | 描述 | 
579| -------- | -------- |
580| EFFECT_BUFFER_TYPE_UNKNOWN | 未定义类型。 | 
581| EFFECT_BUFFER_TYPE_PIXEL | 像素图类型。 | 
582| EFFECT_BUFFER_TYPE_TEXTURE | 纹理类型。 | 
583
584
585### ImageEffect_DataType
586
587```
588enum ImageEffect_DataType
589```
590
591**描述**
592
593数据类型枚举值。
594
595**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
596
597**起始版本:** 12
598
599| 枚举值 | 描述 | 
600| -------- | -------- |
601| EFFECT_DATA_TYPE_UNKNOWN | 未定义类型。 | 
602| EFFECT_DATA_TYPE_INT32 | 整形。 | 
603| EFFECT_DATA_TYPE_FLOAT | 单精度浮点型。 | 
604| EFFECT_DATA_TYPE_DOUBLE | 双精度浮点型。 | 
605| EFFECT_DATA_TYPE_CHAR | 字节类型。 | 
606| EFFECT_DATA_TYPE_LONG | 长整型。 | 
607| EFFECT_DATA_TYPE_BOOL | 布尔类型。 | 
608| EFFECT_DATA_TYPE_PTR | 指针类型。 | 
609
610
611### ImageEffect_ErrorCode
612
613```
614enum ImageEffect_ErrorCode
615```
616
617**描述**
618
619效果器错误码。
620
621**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
622
623**起始版本:** 12
624
625| 枚举值 | 描述 | 
626| -------- | -------- |
627| EFFECT_SUCCESS | 操作成功。 | 
628| EFFECT_ERROR_PERMISSION_DENIED | 权限校验失败。 | 
629| EFFECT_ERROR_PARAM_INVALID | 参数检查失败。 | 
630| EFFECT_BUFFER_SIZE_NOT_MATCH | 输出buffer尺寸不匹配。 | 
631| EFFECT_COLOR_SPACE_NOT_MATCH | 输入输出色彩空间不匹配。 | 
632| EFFECT_INPUT_OUTPUT_NOT_MATCH | 输入输出配置不一致。比如:输入Surface,输出Pixelmap。 | 
633| EFFECT_EFFECT_NUMBER_LIMITED | 超出管线最大规格。 | 
634| EFFECT_INPUT_OUTPUT_NOT_SUPPORTED | 输入、输出配置不支持。 | 
635| EFFECT_ALLOCATE_MEMORY_FAILED | 申请内存失败。 | 
636| EFFECT_PARAM_ERROR | 参数值错误。 例如:滤镜无效的参数值。 | 
637| EFFECT_KEY_ERROR | 参数错误。例如:滤镜无效的参数。 | 
638| EFFECT_UNKNOWN | 未定义错误。 | 
639
640
641### ImageEffect_Format
642
643```
644enum ImageEffect_Format
645```
646
647**描述**
648
649像素格式枚举值。
650
651**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
652
653**起始版本:** 12
654
655| 枚举值 | 描述 | 
656| -------- | -------- |
657| EFFECT_PIXEL_FORMAT_UNKNOWN | 未定义类型。 | 
658| EFFECT_PIXEL_FORMAT_RGBA8888 | RGBA8888类型。 | 
659| EFFECT_PIXEL_FORMAT_NV21 | NV21类型。 | 
660| EFFECT_PIXEL_FORMAT_NV12 | NV12类型。 | 
661| EFFECT_PIXEL_FORMAT_RGBA1010102 | 10bit RGBA类型。 | 
662| EFFECT_PIXEL_FORMAT_YCBCR_P010 | 10bit YCBCR420类型。 | 
663| EFFECT_PIXEL_FORMAT_YCRCB_P010 | 10bit YCRCB420类型。 | 
664
665
666## 函数说明
667
668
669### OH_EffectBufferInfo_Create()
670
671```
672OH_EffectBufferInfo* OH_EffectBufferInfo_Create ()
673```
674
675**描述**
676
677创建OH_EffectBufferInfo实例,调用[OH_EffectBufferInfo_Release](#oh_effectbufferinfo_release)进行资源释放。
678
679**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
680
681**起始版本:** 12
682
683**返回:**
684
685返回一个指向OH_EffectBufferInfo实例的指针,创建失败时返回空指针。
686
687
688### OH_EffectBufferInfo_GetAddr()
689
690```
691ImageEffect_ErrorCode OH_EffectBufferInfo_GetAddr (OH_EffectBufferInfo * info, void ** addr )
692```
693
694**描述**
695
696获取图像内存地址。
697
698**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
699
700**起始版本:** 12
701
702**参数:**
703
704| 名称 | 描述 | 
705| -------- | -------- |
706| info | 图像信息指针。 | 
707| addr | 图像虚拟内存地址。 | 
708
709**返回:**
710
711EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
712
713
714### OH_EffectBufferInfo_GetEffectFormat()
715
716```
717ImageEffect_ErrorCode OH_EffectBufferInfo_GetEffectFormat (OH_EffectBufferInfo * info, ImageEffect_Format * format )
718```
719
720**描述**
721
722获取图像的像素格式。
723
724**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
725
726**起始版本:** 12
727
728**参数:**
729
730| 名称 | 描述 | 
731| -------- | -------- |
732| info | 图像信息指针。 | 
733| format | 图像像素格式[ImageEffect_Format](#imageeffect_format)。 | 
734
735**返回:**
736
737EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
738
739
740### OH_EffectBufferInfo_GetHeight()
741
742```
743ImageEffect_ErrorCode OH_EffectBufferInfo_GetHeight (OH_EffectBufferInfo * info, int32_t * height )
744```
745
746**描述**
747
748获取图像高度。
749
750**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
751
752**起始版本:** 12
753
754**参数:**
755
756| 名称 | 描述 | 
757| -------- | -------- |
758| info | 图像信息指针。 | 
759| height | 图像高度,单位:像素。 | 
760
761**返回:**
762
763EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
764
765
766### OH_EffectBufferInfo_GetRowSize()
767
768```
769ImageEffect_ErrorCode OH_EffectBufferInfo_GetRowSize (OH_EffectBufferInfo * info, int32_t * rowSize )
770```
771
772**描述**
773
774获取图像每一行的字节数。
775
776**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
777
778**起始版本:** 12
779
780**参数:**
781
782| 名称 | 描述 | 
783| -------- | -------- |
784| info | 图像信息指针。 | 
785| rowSize | 图像每一行的字节数,单位:字节。 | 
786
787**返回:**
788
789EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
790
791
792### OH_EffectBufferInfo_GetWidth()
793
794```
795ImageEffect_ErrorCode OH_EffectBufferInfo_GetWidth (OH_EffectBufferInfo * info, int32_t * width )
796```
797
798**描述**
799
800获取图像宽度。
801
802**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
803
804**起始版本:** 12
805
806**参数:**
807
808| 名称 | 描述 | 
809| -------- | -------- |
810| info | 图像信息指针。 | 
811| width | 图像宽度,单位:像素。 | 
812
813**返回:**
814
815EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
816
817
818### OH_EffectBufferInfo_Release()
819
820```
821ImageEffect_ErrorCode OH_EffectBufferInfo_Release (OH_EffectBufferInfo * info)
822```
823
824**描述**
825
826销毁OH_EffectBufferInfo实例。
827
828**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
829
830**起始版本:** 12
831
832**参数:**
833
834| 名称 | 描述 | 
835| -------- | -------- |
836| info | 图像信息指针。 | 
837
838**返回:**
839
840EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
841
842
843### OH_EffectBufferInfo_SetAddr()
844
845```
846ImageEffect_ErrorCode OH_EffectBufferInfo_SetAddr (OH_EffectBufferInfo * info, void * addr )
847```
848
849**描述**
850
851设置图像内存地址。
852
853**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
854
855**起始版本:** 12
856
857**参数:**
858
859| 名称 | 描述 | 
860| -------- | -------- |
861| info | 图像信息指针。 | 
862| addr | 图像虚拟内存地址。 | 
863
864**返回:**
865
866EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
867
868
869### OH_EffectBufferInfo_SetEffectFormat()
870
871```
872ImageEffect_ErrorCode OH_EffectBufferInfo_SetEffectFormat (OH_EffectBufferInfo * info, ImageEffect_Format format )
873```
874
875**描述**
876
877设置图像的像素格式。
878
879**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
880
881**起始版本:** 12
882
883**参数:**
884
885| 名称 | 描述 | 
886| -------- | -------- |
887| info | 图像信息指针。 | 
888| format | 图像像素格式[ImageEffect_Format](#imageeffect_format)。 | 
889
890**返回:**
891
892EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
893
894
895### OH_EffectBufferInfo_SetHeight()
896
897```
898ImageEffect_ErrorCode OH_EffectBufferInfo_SetHeight (OH_EffectBufferInfo * info, int32_t height )
899```
900
901**描述**
902
903设置图像高度。
904
905**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
906
907**起始版本:** 12
908
909**参数:**
910
911| 名称 | 描述 | 
912| -------- | -------- |
913| info | 图像信息指针。 | 
914| height | 图像高度,单位:像素。 | 
915
916**返回:**
917
918EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
919
920
921### OH_EffectBufferInfo_SetRowSize()
922
923```
924ImageEffect_ErrorCode OH_EffectBufferInfo_SetRowSize (OH_EffectBufferInfo * info, int32_t rowSize )
925```
926
927**描述**
928
929设置图像每一行的字节数。
930
931**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
932
933**起始版本:** 12
934
935**参数:**
936
937| 名称 | 描述 | 
938| -------- | -------- |
939| info | 图像信息指针。 | 
940| rowSize | 图像每一行的字节数,单位:字节。 | 
941
942**返回:**
943
944EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
945
946
947### OH_EffectBufferInfo_SetWidth()
948
949```
950ImageEffect_ErrorCode OH_EffectBufferInfo_SetWidth (OH_EffectBufferInfo * info, int32_t width )
951```
952
953**描述**
954
955设置图像宽度。
956
957**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
958
959**起始版本:** 12
960
961**参数:**
962
963| 名称 | 描述 | 
964| -------- | -------- |
965| info | 图像信息指针。 | 
966| width | 图像宽度,单位:像素。 | 
967
968**返回:**
969
970EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
971
972
973### OH_EffectFilter_Create()
974
975```
976OH_EffectFilter* OH_EffectFilter_Create (const char * name)
977```
978
979**描述**
980
981创建OH_EffectFilter实例,调用[OH_EffectFilter_Release](#oh_effectfilter_release)进行资源释放。
982
983**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
984
985**起始版本:** 12
986
987**参数:**
988
989| 名称 | 描述 | 
990| -------- | -------- |
991| name | 滤镜名,例如:OH_EFFECT_BRIGHTNESS_FILTER。 | 
992
993**返回:**
994
995返回一个指向OH_EffectFilter实例的指针,创建失败时返回空指针。
996
997
998### OH_EffectFilter_GetValue()
999
1000```
1001ImageEffect_ErrorCode OH_EffectFilter_GetValue (OH_EffectFilter * filter, const char * key, ImageEffect_Any * value )
1002```
1003
1004**描述**
1005
1006获取滤镜参数。
1007
1008**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1009
1010**起始版本:** 12
1011
1012**参数:**
1013
1014| 名称 | 描述 | 
1015| -------- | -------- |
1016| filter | 滤镜指针。 | 
1017| key | 滤镜参数,例如:OH_EFFECT_FILTER_INTENSITY_KEY。 | 
1018| value | 滤镜参数值。 | 
1019
1020**返回:**
1021
1022EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。 EFFECT_KEY_ERROR如果参数无效。
1023
1024
1025### OH_EffectFilter_LookupFilterInfo()
1026
1027```
1028ImageEffect_ErrorCode OH_EffectFilter_LookupFilterInfo (const char * name, OH_EffectFilterInfo * info )
1029```
1030
1031**描述**
1032
1033查询滤镜信息。
1034
1035**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1036
1037**起始版本:** 12
1038
1039**参数:**
1040
1041| 名称 | 描述 | 
1042| -------- | -------- |
1043| name | 滤镜名。 | 
1044| info | 滤镜信息指针[OH_EffectFilterInfo](#oh_effectfilterinfo)。 | 
1045
1046**返回:**
1047
1048EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针或其他无效值。
1049
1050
1051### OH_EffectFilter_LookupFilters()
1052
1053```
1054ImageEffect_FilterNames* OH_EffectFilter_LookupFilters (const char * key)
1055```
1056
1057**描述**
1058
1059查询满足条件的滤镜。
1060
1061**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1062
1063**起始版本:** 12
1064
1065**参数:**
1066
1067| 名称 | 描述 | 
1068| -------- | -------- |
1069| key | 查询条件,可根据“Default”关键词查询所有的滤镜。 | 
1070
1071**返回:**
1072
1073滤镜名列表[ImageEffect_FilterNames](_image_effect___filter_names.md)。
1074
1075
1076### OH_EffectFilter_Register()
1077
1078```
1079ImageEffect_ErrorCode OH_EffectFilter_Register (const OH_EffectFilterInfo * info, const ImageEffect_FilterDelegate * delegate )
1080```
1081
1082**描述**
1083
1084注册自定义滤镜。
1085
1086**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1087
1088**起始版本:** 12
1089
1090**参数:**
1091
1092| 名称 | 描述 | 
1093| -------- | -------- |
1094| info | 滤镜信息指针[OH_EffectFilterInfo](#oh_effectfilterinfo)。 | 
1095| delegate | 自定义滤镜回调函数[ImageEffect_FilterDelegate](_image_effect___filter_delegate.md)。 | 
1096
1097**返回:**
1098
1099EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1100
1101
1102### OH_EffectFilter_Release()
1103
1104```
1105ImageEffect_ErrorCode OH_EffectFilter_Release (OH_EffectFilter * filter)
1106```
1107
1108**描述**
1109
1110销毁OH_EffectFilter实例。
1111
1112**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1113
1114**起始版本:** 12
1115
1116**参数:**
1117
1118| 名称 | 描述 | 
1119| -------- | -------- |
1120| filter | 滤镜指针。 | 
1121
1122**返回:**
1123
1124EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1125
1126
1127### OH_EffectFilter_ReleaseFilterNames()
1128
1129```
1130void OH_EffectFilter_ReleaseFilterNames ()
1131```
1132
1133**描述**
1134
1135释放滤镜名内存资源。
1136
1137**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1138
1139**起始版本:** 12
1140
1141
1142### OH_EffectFilter_Render()
1143
1144```
1145ImageEffect_ErrorCode OH_EffectFilter_Render (OH_EffectFilter * filter, OH_PixelmapNative * inputPixelmap, OH_PixelmapNative * outputPixelmap )
1146```
1147
1148**描述**
1149
1150执行图像渲染。
1151
1152**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1153
1154**起始版本:** 12
1155
1156**参数:**
1157
1158| 名称 | 描述 | 
1159| -------- | -------- |
1160| filter | 滤镜指针。 | 
1161| inputPixelmap | 输入图像。 | 
1162| outputPixelmap | 输出图像。 | 
1163
1164**返回:**
1165
1166EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1167
1168
1169### OH_EffectFilter_SetValue()
1170
1171```
1172ImageEffect_ErrorCode OH_EffectFilter_SetValue (OH_EffectFilter * filter, const char * key, const ImageEffect_Any * value )
1173```
1174
1175**描述**
1176
1177设置滤镜参数。
1178
1179**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1180
1181**起始版本:** 12
1182
1183**参数:**
1184
1185| 名称 | 描述 | 
1186| -------- | -------- |
1187| filter | 滤镜指针。 | 
1188| key | 滤镜参数,例如:OH_EFFECT_FILTER_INTENSITY_KEY。 | 
1189| value | 滤镜参数值。 | 
1190
1191**返回:**
1192
1193EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。 EFFECT_KEY_ERROR如果参数无效。 EFFECT_PARAM_ERROR如果参数值无效。
1194
1195
1196### OH_EffectFilterInfo_Create()
1197
1198```
1199OH_EffectFilterInfo* OH_EffectFilterInfo_Create ()
1200```
1201
1202**描述**
1203
1204创建OH_EffectFilterInfo实例,调用[OH_EffectFilterInfo_Release](#oh_effectfilterinfo_release)进行资源释放。
1205
1206**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1207
1208**起始版本:** 12
1209
1210**返回:**
1211
1212返回一个指向OH_EffectFilterInfo实例的指针,创建失败时返回空指针。
1213
1214
1215### OH_EffectFilterInfo_GetFilterName()
1216
1217```
1218ImageEffect_ErrorCode OH_EffectFilterInfo_GetFilterName (OH_EffectFilterInfo * info, char ** name )
1219```
1220
1221**描述**
1222
1223获取滤镜名。
1224
1225**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1226
1227**起始版本:** 12
1228
1229**参数:**
1230
1231| 名称 | 描述 | 
1232| -------- | -------- |
1233| info | 滤镜信息指针。 | 
1234| name | 指向char数组的指针,返回滤镜名。 | 
1235
1236**返回:**
1237
1238EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1239
1240
1241### OH_EffectFilterInfo_GetSupportedBufferTypes()
1242
1243```
1244ImageEffect_ErrorCode OH_EffectFilterInfo_GetSupportedBufferTypes (OH_EffectFilterInfo * info, uint32_t * size, ImageEffect_BufferType ** bufferTypeArray )
1245```
1246
1247**描述**
1248
1249获取滤镜所支持的内存类型。
1250
1251**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1252
1253**起始版本:** 12
1254
1255**参数:**
1256
1257| 名称 | 描述 | 
1258| -------- | -------- |
1259| info | 滤镜信息指针。 | 
1260| size | 滤镜所支持内存类型[ImageEffect_BufferType](#imageeffect_buffertype)个数。 | 
1261| bufferTypeArray | 滤镜所支持内存类型[ImageEffect_BufferType](#imageeffect_buffertype)数组。 | 
1262
1263**返回:**
1264
1265EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1266
1267
1268### OH_EffectFilterInfo_GetSupportedFormats()
1269
1270```
1271ImageEffect_ErrorCode OH_EffectFilterInfo_GetSupportedFormats (OH_EffectFilterInfo * info, uint32_t * size, ImageEffect_Format ** formatArray )
1272```
1273
1274**描述**
1275
1276获取滤镜所支持的像素格式。
1277
1278**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1279
1280**起始版本:** 12
1281
1282**参数:**
1283
1284| 名称 | 描述 | 
1285| -------- | -------- |
1286| info | 滤镜信息指针。 | 
1287| size | 滤镜所支持像素格式[ImageEffect_Format](#imageeffect_format)个数。 | 
1288| formatArray | 滤镜所支持像素格式[ImageEffect_Format](#imageeffect_format)数组。 | 
1289
1290**返回:**
1291
1292EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1293
1294
1295### OH_EffectFilterInfo_Release()
1296
1297```
1298ImageEffect_ErrorCode OH_EffectFilterInfo_Release (OH_EffectFilterInfo * info)
1299```
1300
1301**描述**
1302
1303销毁OH_EffectFilterInfo实例。
1304
1305**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1306
1307**起始版本:** 12
1308
1309**参数:**
1310
1311| 名称 | 描述 | 
1312| -------- | -------- |
1313| info | 滤镜信息指针。 | 
1314
1315**返回:**
1316
1317EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1318
1319
1320### OH_EffectFilterInfo_SetFilterName()
1321
1322```
1323ImageEffect_ErrorCode OH_EffectFilterInfo_SetFilterName (OH_EffectFilterInfo * info, const char * name )
1324```
1325
1326**描述**
1327
1328设置滤镜名。
1329
1330**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1331
1332**起始版本:** 12
1333
1334**参数:**
1335
1336| 名称 | 描述 | 
1337| -------- | -------- |
1338| info | 滤镜信息指针。 | 
1339| name | 滤镜名,例如:OH_EFFECT_BRIGHTNESS_FILTER。 | 
1340
1341**返回:**
1342
1343EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1344
1345
1346### OH_EffectFilterInfo_SetSupportedBufferTypes()
1347
1348```
1349ImageEffect_ErrorCode OH_EffectFilterInfo_SetSupportedBufferTypes (OH_EffectFilterInfo * info, uint32_t size, ImageEffect_BufferType * bufferTypeArray )
1350```
1351
1352**描述**
1353
1354设置滤镜所支持的内存类型。
1355
1356**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1357
1358**起始版本:** 12
1359
1360**参数:**
1361
1362| 名称 | 描述 | 
1363| -------- | -------- |
1364| info | 滤镜信息指针。 | 
1365| size | 滤镜所支持内存类型[ImageEffect_BufferType](#imageeffect_buffertype)个数。 | 
1366| bufferTypeArray | 滤镜所支持内存类型[ImageEffect_BufferType](#imageeffect_buffertype)数组。 | 
1367
1368**返回:**
1369
1370EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1371
1372
1373### OH_EffectFilterInfo_SetSupportedFormats()
1374
1375```
1376ImageEffect_ErrorCode OH_EffectFilterInfo_SetSupportedFormats (OH_EffectFilterInfo * info, uint32_t size, ImageEffect_Format * formatArray )
1377```
1378
1379**描述**
1380
1381设置滤镜所支持的像素格式。
1382
1383**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1384
1385**起始版本:** 12
1386
1387**参数:**
1388
1389| 名称 | 描述 | 
1390| -------- | -------- |
1391| info | 滤镜信息指针。 | 
1392| size | 滤镜所支持像素格式[ImageEffect_Format](#imageeffect_format)个数。 | 
1393| formatArray | 滤镜所支持像素格式[ImageEffect_Format](#imageeffect_format)数组。 | 
1394
1395**返回:**
1396
1397EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1398
1399
1400### OH_ImageEffect_AddFilter()
1401
1402```
1403OH_EffectFilter* OH_ImageEffect_AddFilter (OH_ImageEffect * imageEffect, const char * filterName )
1404```
1405
1406**描述**
1407
1408添加滤镜。
1409
1410**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1411
1412**起始版本:** 12
1413
1414**参数:**
1415
1416| 名称 | 描述 | 
1417| -------- | -------- |
1418| imageEffect | 效果器指针。 | 
1419| filterName | 滤镜名。 | 
1420
1421**返回:**
1422
1423返回一个指向OH_EffectFilter实例的指针,滤镜名无效时返回空指针。
1424
1425
1426### OH_ImageEffect_AddFilterByFilter()
1427
1428```
1429ImageEffect_ErrorCode OH_ImageEffect_AddFilterByFilter(OH_ImageEffect *imageEffect, OH_EffectFilter *filter)
1430```
1431**描述**
1432添加指定滤镜。
1433
1434**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1435
1436**起始版本:** 12
1437
1438**参数:**
1439
1440| 名称 | 描述 | 
1441| -------- | -------- |
1442| imageEffect | 效果器指针。  | 
1443| filter | 滤镜指针。  | 
1444
1445**返回:**
1446
1447EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1448
1449
1450### OH_ImageEffect_Configure()
1451
1452```
1453ImageEffect_ErrorCode OH_ImageEffect_Configure (OH_ImageEffect * imageEffect, const char * key, const ImageEffect_Any * value )
1454```
1455
1456**描述**
1457
1458设置配置信息。
1459
1460**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1461
1462**起始版本:** 12
1463
1464**参数:**
1465
1466| 名称 | 描述 | 
1467| -------- | -------- |
1468| imageEffect | 效果器指针。 | 
1469| key | 配置参数。 | 
1470| value | 配置参数值。 | 
1471
1472**返回:**
1473
1474EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。 EFFECT_KEY_ERROR如果参数无效。 EFFECT_PARAM_ERROR如果参数值无效。
1475
1476
1477### OH_ImageEffect_Create()
1478
1479```
1480OH_ImageEffect* OH_ImageEffect_Create (const char * name)
1481```
1482
1483**描述**
1484
1485创建OH_ImageEffect实例,调用[OH_ImageEffect_Release](#oh_imageeffect_release)进行资源释放。
1486
1487**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1488
1489**起始版本:** 12
1490
1491**参数:**
1492
1493| 名称 | 描述 | 
1494| -------- | -------- |
1495| name | 效果器名,用于标识效果器,由用户自定义,建议为非空的字符串。 | 
1496
1497**返回:**
1498
1499返回一个指向OH_ImageEffect实例的指针,创建失败时返回空指针。
1500
1501
1502### OH_ImageEffect_GetFilter()
1503
1504```
1505OH_EffectFilter* OH_ImageEffect_GetFilter (OH_ImageEffect * imageEffect, uint32_t index )
1506```
1507
1508**描述**
1509
1510查询已添加滤镜。
1511
1512**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1513
1514**起始版本:** 12
1515
1516**参数:**
1517
1518| 名称 | 描述 | 
1519| -------- | -------- |
1520| imageEffect | 效果器指针。 | 
1521| index | 待查询滤镜位置索引。 | 
1522
1523**返回:**
1524
1525返回一个指向OH_EffectFilter实例的指针,参数无效时返回空指针。
1526
1527
1528### OH_ImageEffect_GetFilterCount()
1529
1530```
1531int32_t OH_ImageEffect_GetFilterCount (OH_ImageEffect * imageEffect)
1532```
1533
1534**描述**
1535
1536查询已添加滤镜个数。
1537
1538**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1539
1540**起始版本:** 12
1541
1542**参数:**
1543
1544| 名称 | 描述 | 
1545| -------- | -------- |
1546| imageEffect | 效果器指针。 | 
1547
1548**返回:**
1549
1550已添加的滤镜个数。
1551
1552
1553### OH_ImageEffect_GetInputSurface()
1554
1555```
1556ImageEffect_ErrorCode OH_ImageEffect_GetInputSurface (OH_ImageEffect * imageEffect, OHNativeWindow ** nativeWindow )
1557```
1558
1559**描述**
1560
1561获取输入Surface。
1562
1563**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1564
1565**起始版本:** 12
1566
1567**参数:**
1568
1569| 名称 | 描述 | 
1570| -------- | -------- |
1571| imageEffect | 效果器指针。 | 
1572| nativeWindow | 指向OHNativeWindow实例的指针。 | 
1573
1574**返回:**
1575
1576EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1577
1578
1579### OH_ImageEffect_InsertFilter()
1580
1581```
1582OH_EffectFilter* OH_ImageEffect_InsertFilter (OH_ImageEffect * imageEffect, uint32_t index, const char * filterName )
1583```
1584
1585**描述**
1586
1587插入滤镜。
1588
1589**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1590
1591**起始版本:** 12
1592
1593**参数:**
1594
1595| 名称 | 描述 | 
1596| -------- | -------- |
1597| imageEffect | 效果器指针。 | 
1598| index | 插入滤镜位置索引。 | 
1599| filterName | 滤镜名。 | 
1600
1601**返回:**
1602
1603返回一个指向OH_EffectFilter实例的指针,参数无效时返回空指针。
1604
1605
1606### OH_ImageEffect_InsertFilterByFilter()
1607
1608```
1609ImageEffect_ErrorCode OH_ImageEffect_InsertFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index, OH_EffectFilter *filter);
1610```
1611**描述**
1612按指定位置插入滤镜。
1613
1614**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1615
1616**起始版本:** 12
1617
1618**参数:**
1619
1620| 名称 | 描述 | 
1621| -------- | -------- |
1622| imageEffect | 效果器指针。  | 
1623| index | 插入滤镜位置索引。  | 
1624| filter | 滤镜指针。  | 
1625
1626**返回:**
1627
1628EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1629
1630
1631### OH_ImageEffect_Release()
1632
1633```
1634ImageEffect_ErrorCode OH_ImageEffect_Release (OH_ImageEffect * imageEffect)
1635```
1636
1637**描述**
1638
1639释放OH_ImageEffect实例资源。
1640
1641**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1642
1643**起始版本:** 12
1644
1645**参数:**
1646
1647| 名称 | 描述 | 
1648| -------- | -------- |
1649| imageEffect | 效果器指针。 | 
1650
1651**返回:**
1652
1653EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1654
1655
1656### OH_ImageEffect_RemoveFilter()
1657
1658```
1659int32_t OH_ImageEffect_RemoveFilter (OH_ImageEffect * imageEffect, const char * filterName )
1660```
1661
1662**描述**
1663
1664移除滤镜。
1665
1666**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1667
1668**起始版本:** 12
1669
1670**参数:**
1671
1672| 名称 | 描述 | 
1673| -------- | -------- |
1674| imageEffect | 效果器指针。 | 
1675| filterName | 滤镜名。 | 
1676
1677**返回:**
1678
1679所删除的滤镜个数。
1680
1681
1682### OH_ImageEffect_RemoveFilterByIndex()
1683
1684```
1685ImageEffect_ErrorCode OH_ImageEffect_RemoveFilterByIndex(OH_ImageEffect *imageEffect, uint32_t index)
1686```
1687**描述**
1688移除指定位置滤镜。
1689
1690**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1691
1692**起始版本:** 12
1693
1694**参数:**
1695
1696| 名称 | 描述 | 
1697| -------- | -------- |
1698| imageEffect | 效果器指针。  | 
1699| index | 移除滤镜位置索引。  | 
1700
1701**返回:**
1702
1703EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1704
1705
1706### OH_ImageEffect_ReplaceFilter()
1707
1708```
1709OH_EffectFilter *OH_ImageEffect_ReplaceFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName)
1710```
1711**描述**
1712替换滤镜。
1713
1714**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1715
1716**起始版本:** 12
1717
1718**参数:**
1719
1720| 名称 | 描述 | 
1721| -------- | -------- |
1722| imageEffect | 效果器指针。  | 
1723| filterName | 滤镜名。  | 
1724
1725**返回:**
1726
1727返回一个指向OH_EffectFilter实例的指针,替换失败时返回空指针。
1728
1729
1730### OH_ImageEffect_ReplaceFilterByFilter()
1731
1732```
1733ImageEffect_ErrorCode OH_ImageEffect_ReplaceFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName);
1734```
1735**描述**
1736替换指定位置滤镜。
1737
1738**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1739
1740**起始版本:** 12
1741
1742**参数:**
1743
1744| 名称 | 描述 | 
1745| -------- | -------- |
1746| imageEffect | 效果器指针。  | 
1747| index | 替换滤镜位置索引。  | 
1748| filterName | 滤镜名。  | 
1749
1750**返回:**
1751
1752EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1753
1754
1755### OH_ImageEffect_Restore()
1756
1757```
1758OH_ImageEffect* OH_ImageEffect_Restore (const char * info)
1759```
1760
1761**描述**
1762
1763反序列化效果器。
1764
1765**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1766
1767**起始版本:** 12
1768
1769**参数:**
1770
1771| 名称 | 描述 | 
1772| -------- | -------- |
1773| info | 序列化JSON字符串。 | 
1774
1775**返回:**
1776
1777反序列化成功时返回OH_ImageEffect实例,否则返回空指针。
1778
1779
1780### OH_ImageEffect_Save()
1781
1782```
1783ImageEffect_ErrorCode OH_ImageEffect_Save (OH_ImageEffect * imageEffect, char ** info )
1784```
1785
1786**描述**
1787
1788序列化效果器。
1789
1790**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1791
1792**起始版本:** 12
1793
1794**参数:**
1795
1796| 名称 | 描述 | 
1797| -------- | -------- |
1798| imageEffect | 效果器指针。 | 
1799| info | 指向char数组的指针,返回序列化JSON字符串。 | 
1800
1801**返回:**
1802
1803EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1804
1805
1806### OH_ImageEffect_SetInputNativeBuffer()
1807
1808```
1809ImageEffect_ErrorCode OH_ImageEffect_SetInputNativeBuffer (OH_ImageEffect * imageEffect, OH_NativeBuffer * nativeBuffer )
1810```
1811
1812**描述**
1813
1814设置输入的NativeBuffer。
1815
1816**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1817
1818**起始版本:** 12
1819
1820**参数:**
1821
1822| 名称 | 描述 | 
1823| -------- | -------- |
1824| imageEffect | 效果器指针。 | 
1825| nativeBuffer | 指向OH_NativeBuffer实例的指针。 | 
1826
1827**返回:**
1828
1829EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1830
1831
1832### OH_ImageEffect_SetInputPicture()
1833
1834```
1835ImageEffect_ErrorCode OH_ImageEffect_SetInputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture)
1836```
1837**描述**
1838设置输入的Picture。
1839
1840**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1841
1842**起始版本:** 13
1843
1844**参数:**
1845
1846| 名称 | 描述 | 
1847| -------- | -------- |
1848| imageEffect | 效果器指针。  | 
1849| picture | 指向OH_PictureNative实例的指针。  | 
1850
1851**返回:**
1852
1853EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1854
1855
1856### OH_ImageEffect_SetInputPixelmap()
1857
1858```
1859ImageEffect_ErrorCode OH_ImageEffect_SetInputPixelmap (OH_ImageEffect * imageEffect, OH_PixelmapNative * pixelmap )
1860```
1861
1862**描述**
1863
1864设置输入的Pixelmap。
1865
1866**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1867
1868**起始版本:** 12
1869
1870**参数:**
1871
1872| 名称 | 描述 | 
1873| -------- | -------- |
1874| imageEffect | 效果器指针。 | 
1875| pixelmap | 指向OH_PixelmapNative实例的指针。 | 
1876
1877**返回:**
1878
1879EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1880
1881
1882### OH_ImageEffect_SetInputUri()
1883
1884```
1885ImageEffect_ErrorCode OH_ImageEffect_SetInputUri (OH_ImageEffect * imageEffect, const char * uri )
1886```
1887
1888**描述**
1889
1890设置输入的URI。
1891
1892**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1893
1894**起始版本:** 12
1895
1896**参数:**
1897
1898| 名称 | 描述 | 
1899| -------- | -------- |
1900| imageEffect | 效果器指针。 | 
1901| uri | 图片URI。 | 
1902
1903**返回:**
1904
1905EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1906
1907
1908### OH_ImageEffect_SetOutputNativeBuffer()
1909
1910```
1911ImageEffect_ErrorCode OH_ImageEffect_SetOutputNativeBuffer (OH_ImageEffect * imageEffect, OH_NativeBuffer * nativeBuffer )
1912```
1913
1914**描述**
1915
1916设置输出的NativeBuffer。
1917
1918**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1919
1920**起始版本:** 12
1921
1922**参数:**
1923
1924| 名称 | 描述 | 
1925| -------- | -------- |
1926| imageEffect | 效果器指针。 | 
1927| nativeBuffer | 指向OH_NativeBuffer实例的指针。 | 
1928
1929**返回:**
1930
1931EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1932
1933
1934### OH_ImageEffect_SetOutputPicture()
1935
1936```
1937ImageEffect_ErrorCode OH_ImageEffect_SetOutputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture)
1938```
1939**描述**
1940设置输出的Picture。
1941
1942**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1943
1944**起始版本:** 13
1945
1946**参数:**
1947
1948| 名称 | 描述 | 
1949| -------- | -------- |
1950| imageEffect | 效果器指针。  | 
1951| picture | 指向OH_PictureNative实例的指针。  | 
1952
1953**返回:**
1954
1955EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1956
1957
1958### OH_ImageEffect_SetOutputPixelmap()
1959
1960```
1961ImageEffect_ErrorCode OH_ImageEffect_SetOutputPixelmap (OH_ImageEffect * imageEffect, OH_PixelmapNative * pixelmap )
1962```
1963
1964**描述**
1965
1966设置输出的Pixelmap。
1967
1968**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1969
1970**起始版本:** 12
1971
1972**参数:**
1973
1974| 名称 | 描述 | 
1975| -------- | -------- |
1976| imageEffect | 效果器指针。 | 
1977| pixelmap | 指向OH_PixelmapNative实例的指针。 | 
1978
1979**返回:**
1980
1981EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
1982
1983
1984### OH_ImageEffect_SetOutputSurface()
1985
1986```
1987ImageEffect_ErrorCode OH_ImageEffect_SetOutputSurface (OH_ImageEffect * imageEffect, OHNativeWindow * nativeWindow )
1988```
1989
1990**描述**
1991
1992设置输出Surface。
1993
1994**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
1995
1996**起始版本:** 12
1997
1998**参数:**
1999
2000| 名称 | 描述 | 
2001| -------- | -------- |
2002| imageEffect | 效果器指针。 | 
2003| nativeWindow | 指向OHNativeWindow实例的指针。 | 
2004
2005**返回:**
2006
2007EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
2008
2009
2010### OH_ImageEffect_SetOutputUri()
2011
2012```
2013ImageEffect_ErrorCode OH_ImageEffect_SetOutputUri (OH_ImageEffect * imageEffect, const char * uri )
2014```
2015
2016**描述**
2017
2018设置输出的URI。
2019
2020**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
2021
2022**起始版本:** 12
2023
2024**参数:**
2025
2026| 名称 | 描述 | 
2027| -------- | -------- |
2028| imageEffect | 效果器指针。 | 
2029| uri | 图片URI。 | 
2030
2031**返回:**
2032
2033EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
2034
2035
2036### OH_ImageEffect_Start()
2037
2038```
2039ImageEffect_ErrorCode OH_ImageEffect_Start (OH_ImageEffect * imageEffect)
2040```
2041
2042**描述**
2043
2044启动效果器。
2045
2046**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
2047
2048**起始版本:** 12
2049
2050**参数:**
2051
2052| 名称 | 描述 | 
2053| -------- | -------- |
2054| imageEffect | 效果器指针。 | 
2055
2056**返回:**
2057
2058EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。 EFFECT_INPUT_OUTPUT_NOT_SUPPORTED如果待处理输入、输出图像数据类型不一致。 EFFECT_COLOR_SPACE_NOT_MATCH如果输入、输出图像色彩空间不配置。 EFFECT_ALLOCATE_MEMORY_FAILED如果内存申请失败。
2059
2060
2061### OH_ImageEffect_Stop()
2062
2063```
2064ImageEffect_ErrorCode OH_ImageEffect_Stop (OH_ImageEffect * imageEffect)
2065```
2066
2067**描述**
2068
2069停止生效效果。
2070
2071**系统能力:** SystemCapability.Multimedia.ImageEffect.Core
2072
2073**起始版本:** 12
2074
2075**参数:**
2076
2077| 名称 | 描述 | 
2078| -------- | -------- |
2079| imageEffect | 效果器指针。 | 
2080
2081**返回:**
2082
2083EFFECT_SUCCESS如果方法调用成功。 EFFECT_ERROR_PARAM_INVALID如果入参为空指针。
2084