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