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