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