4bd4c429创建于 2024年10月24日历史提交

image_effect.h

概述

声明效果器相关接口。

效果器提供了滤镜的添加、删除、查询等功能。开发者可以通过效果器提供的接口将多个滤镜组合串联,从而实现较为复杂的效果调节功能。

同时,效果器支持多种输入类型,如Pixelmap、URI、Surface、Picture。不同的输入类型在效果器内部都会转换为内存对象,通过滤镜的效果处理, 获得处理结果。

库: libimage_effect.so

系统能力: SystemCapability.Multimedia.ImageEffect.Core

起始版本: 12

相关模块:ImageEffect

汇总

类型定义

名称 描述
typedef struct OH_ImageEffect OH_ImageEffect 定义效果器结构类型。

函数

名称 描述
OH_ImageEffect * OH_ImageEffect_Create (const char *name) 创建OH_ImageEffect实例,调用OH_ImageEffect_Release进行资源释放。
OH_EffectFilter * OH_ImageEffect_AddFilter (OH_ImageEffect *imageEffect, const char *filterName) 添加滤镜。
ImageEffect_ErrorCode OH_ImageEffect_AddFilterByFilter (OH_ImageEffect *imageEffect, OH_EffectFilter *filter) 添加指定滤镜。
OH_EffectFilter * OH_ImageEffect_InsertFilter (OH_ImageEffect *imageEffect, uint32_t index, const char *filterName) 插入滤镜。
ImageEffect_ErrorCode OH_ImageEffect_InsertFilterByFilter (OH_ImageEffect *imageEffect, uint32_t index, OH_EffectFilter *filter) 按指定位置插入滤镜。
int32_t OH_ImageEffect_RemoveFilter (OH_ImageEffect *imageEffect, const char *filterName) 移除滤镜。
ImageEffect_ErrorCode OH_ImageEffect_RemoveFilterByIndex (OH_ImageEffect *imageEffect, uint32_t index) 移除指定位置滤镜。
OH_EffectFilter * OH_ImageEffect_ReplaceFilter (OH_ImageEffect *imageEffect, uint32_t index, const char *filterName) 替换滤镜。
ImageEffect_ErrorCode OH_ImageEffect_ReplaceFilterByFilter (OH_ImageEffect *imageEffect, uint32_t index, const char *filterName) 替换指定位置滤镜。
int32_t OH_ImageEffect_GetFilterCount (OH_ImageEffect *imageEffect) 查询已添加滤镜个数。
OH_EffectFilter * OH_ImageEffect_GetFilter (OH_ImageEffect *imageEffect, uint32_t index) 查询已添加滤镜。
ImageEffect_ErrorCode OH_ImageEffect_Configure (OH_ImageEffect *imageEffect, const char *key, const ImageEffect_Any *value) 设置配置信息。
ImageEffect_ErrorCode OH_ImageEffect_SetOutputSurface (OH_ImageEffect *imageEffect, OHNativeWindow *nativeWindow) 设置输出Surface。
ImageEffect_ErrorCode OH_ImageEffect_GetInputSurface (OH_ImageEffect *imageEffect, OHNativeWindow **nativeWindow) 获取输入Surface。
ImageEffect_ErrorCode OH_ImageEffect_SetInputPixelmap (OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap) 设置输入的Pixelmap。
ImageEffect_ErrorCode OH_ImageEffect_SetOutputPixelmap (OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap) 设置输出的Pixelmap。
ImageEffect_ErrorCode OH_ImageEffect_SetInputNativeBuffer (OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer) 设置输入的NativeBuffer。
ImageEffect_ErrorCode OH_ImageEffect_SetOutputNativeBuffer (OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer) 设置输出的NativeBuffer。
ImageEffect_ErrorCode OH_ImageEffect_SetInputUri (OH_ImageEffect *imageEffect, const char *uri) 设置输入的URI。
ImageEffect_ErrorCode OH_ImageEffect_SetOutputUri (OH_ImageEffect *imageEffect, const char *uri) 设置输出的URI。
ImageEffect_ErrorCode OH_ImageEffect_SetInputPicture (OH_ImageEffect *imageEffect, OH_PictureNative *picture) 设置输入的Picture。
ImageEffect_ErrorCode OH_ImageEffect_SetOutputPicture (OH_ImageEffect *imageEffect, OH_PictureNative *picture) 设置输出的Picture。
ImageEffect_ErrorCode OH_ImageEffect_Start (OH_ImageEffect *imageEffect) 启动效果器。
ImageEffect_ErrorCode OH_ImageEffect_Stop (OH_ImageEffect *imageEffect) 停止生效效果。
ImageEffect_ErrorCode OH_ImageEffect_Release (OH_ImageEffect *imageEffect) 释放OH_ImageEffect实例资源。
ImageEffect_ErrorCode OH_ImageEffect_Save (OH_ImageEffect *imageEffect, char **info) 序列化效果器。
OH_ImageEffect * OH_ImageEffect_Restore (const char *info) 反序列化效果器。