1e41f4b71Sopenharmony_ci# image_effect.h
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## Overview
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciThe **image_effect.h** file declares the APIs related to an image effector.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ciYou can use the APIs to add, delete, and query image effect filters. You can connect multiple filters in series to implement complex effect adjustment.
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ciThe effector supports multiple input types, such as pixel map, URI, and surface. Different input types are converted into buffer objects in the effector, and effect processing is implemented through the filters.
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci**Library**: libimage_effect.so
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Multimedia.ImageEffect.Core
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci**Since**: 12
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci**Related module**: [ImageEffect](_image_effect.md)
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci## Summary
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci### Types
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci| Name| Description| 
27e41f4b71Sopenharmony_ci| -------- | -------- |
28e41f4b71Sopenharmony_ci| typedef struct [OH_ImageEffect](_image_effect.md#oh_imageeffect) [OH_ImageEffect](_image_effect.md#oh_imageeffect) | Defines a struct for the image effector. | 
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci### Functions
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci| Name| Description| 
34e41f4b71Sopenharmony_ci| -------- | -------- |
35e41f4b71Sopenharmony_ci| [OH_ImageEffect](_image_effect.md#oh_imageeffect) \* [OH_ImageEffect_Create](_image_effect.md#oh_imageeffect_create) (const char \*name) | Creates an **OH_ImageEffect** instance. The instance must be released by calling [OH_ImageEffect_Release](_image_effect.md#oh_imageeffect_release) when it is no longer needed. | 
36e41f4b71Sopenharmony_ci| [OH_EffectFilter](_image_effect.md#oh_effectfilter) \* [OH_ImageEffect_AddFilter](_image_effect.md#oh_imageeffect_addfilter) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, const char \*filterName) | Adds a filter. | 
37e41f4b71Sopenharmony_ci| [OH_EffectFilter](_image_effect.md#oh_effectfilter) \* [OH_ImageEffect_InsertFilter](_image_effect.md#oh_imageeffect_insertfilter) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, uint32_t index, const char \*filterName) | Inserts a filter. | 
38e41f4b71Sopenharmony_ci| int32_t [OH_ImageEffect_RemoveFilter](_image_effect.md#oh_imageeffect_removefilter) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, const char \*filterName) | Removes a filter. | 
39e41f4b71Sopenharmony_ci| int32_t [OH_ImageEffect_GetFilterCount](_image_effect.md#oh_imageeffect_getfiltercount) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect) | Obtains the number of added filters. | 
40e41f4b71Sopenharmony_ci| [OH_EffectFilter](_image_effect.md#oh_effectfilter) \* [OH_ImageEffect_GetFilter](_image_effect.md#oh_imageeffect_getfilter) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, uint32_t index) | Obtains the information about a filter. | 
41e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_Configure](_image_effect.md#oh_imageeffect_configure) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, const char \*key, const [ImageEffect_Any](_image_effect___any.md) \*value) | Configures an image effector. | 
42e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_SetOutputSurface](_image_effect.md#oh_imageeffect_setoutputsurface) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, OHNativeWindow \*nativeWindow) | Sets an output surface. | 
43e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_GetInputSurface](_image_effect.md#oh_imageeffect_getinputsurface) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, OHNativeWindow \*\*nativeWindow) | Obtains an input surface. | 
44e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_SetInputPixelmap](_image_effect.md#oh_imageeffect_setinputpixelmap) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, OH_PixelmapNative \*pixelmap) | Sets an input pixel map. | 
45e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_SetOutputPixelmap](_image_effect.md#oh_imageeffect_setoutputpixelmap) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, OH_PixelmapNative \*pixelmap) | Sets an output pixel map. | 
46e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_SetInputNativeBuffer](_image_effect.md#oh_imageeffect_setinputnativebuffer) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, OH_NativeBuffer \*nativeBuffer) | Sets an input native buffer. | 
47e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_SetOutputNativeBuffer](_image_effect.md#oh_imageeffect_setoutputnativebuffer) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, OH_NativeBuffer \*nativeBuffer) | Sets an output native buffer. | 
48e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_SetInputUri](_image_effect.md#oh_imageeffect_setinputuri) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, const char \*uri) | Sets an input URI. | 
49e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_SetOutputUri](_image_effect.md#oh_imageeffect_setoutputuri) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, const char \*uri) | Sets an output URI. | 
50e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_Start](_image_effect.md#oh_imageeffect_start) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect) | Starts an image effector. | 
51e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_Stop](_image_effect.md#oh_imageeffect_stop) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect) | Stops an image effector. | 
52e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_Release](_image_effect.md#oh_imageeffect_release) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect) | Releases an **OH_ImageEffect** instance. | 
53e41f4b71Sopenharmony_ci| [ImageEffect_ErrorCode](_image_effect.md#imageeffect_errorcode) [OH_ImageEffect_Save](_image_effect.md#oh_imageeffect_save) ([OH_ImageEffect](_image_effect.md#oh_imageeffect) \*imageEffect, char \*\*info) | Serializes an image effector. | 
54e41f4b71Sopenharmony_ci| [OH_ImageEffect](_image_effect.md#oh_imageeffect) \* [OH_ImageEffect_Restore](_image_effect.md#oh_imageeffect_restore) (const char \*info) | Deserializes an image effector. | 
55