harmony 鸿蒙image_effect.h

  • 2025-06-12
  • 浏览 (2)

image_effect.h

概述

声明效果器相关接口。效果器提供了滤镜的添加、删除、查询等功能。

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

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

库: libimage_effect.so

引用文件:

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

起始版本: 12

相关模块: ImageEffect

汇总

结构体

|名称|typedef关键字|描述| |–|–|–| |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)|反序列化效果器。|

函数说明

OH_ImageEffect_Create()

OH_ImageEffect *OH_ImageEffect_Create(const char *name)

描述

创建OH_ImageEffect实例,调用OH_ImageEffect_Release进行资源释放。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |const char *name|效果器名,用于标识效果器,由用户自定义,建议为非空的字符串。|

返回:

|类型|说明| |–|–| |OH_ImageEffect|返回一个指向OH_ImageEffect实例的指针,创建失败时返回空指针。|

OH_ImageEffect_AddFilter()

OH_EffectFilter *OH_ImageEffect_AddFilter(OH_ImageEffect *imageEffect, const char *filterName)

描述

添加滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |const char *filterName|滤镜名。|

返回:

|类型|说明| |–|–| |OH_EffectFilter|返回一个指向OH_EffectFilter实例的指针,滤镜名无效时返回空指针。|

OH_ImageEffect_AddFilterByFilter()

ImageEffect_ErrorCode OH_ImageEffect_AddFilterByFilter(OH_ImageEffect *imageEffect, OH_EffectFilter *filter)

描述

添加指定滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OH_EffectFilter *filter|滤镜指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_InsertFilter()

OH_EffectFilter *OH_ImageEffect_InsertFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName)

描述

插入滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |uint32_t index|插入滤镜位置索引。| |const char *filterName|滤镜名。|

返回:

|类型|说明| |–|–| |OH_EffectFilter|返回一个指向OH_EffectFilter实例的指针,参数无效时返回空指针。|

OH_ImageEffect_InsertFilterByFilter()

ImageEffect_ErrorCode OH_ImageEffect_InsertFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index,OH_EffectFilter *filter)

描述

按指定位置插入滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |uint32_t index|插入滤镜位置索引。| |OH_EffectFilter *filter|滤镜指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_RemoveFilter()

int32_t OH_ImageEffect_RemoveFilter(OH_ImageEffect *imageEffect, const char *filterName)

描述

移除滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |const char *filterName|滤镜名。|

返回:

|类型|说明| |–|–| |int32_t|所删除的滤镜个数。|

OH_ImageEffect_RemoveFilterByIndex()

ImageEffect_ErrorCode OH_ImageEffect_RemoveFilterByIndex(OH_ImageEffect *imageEffect, uint32_t index)

描述

移除指定位置滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |uint32_t index|移除滤镜位置索引。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_ReplaceFilter()

OH_EffectFilter *OH_ImageEffect_ReplaceFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName)

描述

替换滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |const char *filterName|滤镜名。|

返回:

|类型|说明| |–|–| |OH_EffectFilter|返回一个指向OH_EffectFilter实例的指针,替换失败时返回空指针。|

OH_ImageEffect_ReplaceFilterByFilter()

ImageEffect_ErrorCode OH_ImageEffect_ReplaceFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index,const char *filterName)

描述

替换指定位置滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |uint32_t index|替换滤镜位置索引。| |const char *filterName|滤镜名。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_GetFilterCount()

int32_t OH_ImageEffect_GetFilterCount(OH_ImageEffect *imageEffect)

描述

查询已添加滤镜个数。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。|

返回:

|类型|说明| |–|–| |int32_t|已添加的滤镜个数。|

OH_ImageEffect_GetFilter()

OH_EffectFilter *OH_ImageEffect_GetFilter(OH_ImageEffect *imageEffect, uint32_t index)

描述

查询已添加滤镜。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |uint32_t index|待查询滤镜位置索引。|

返回:

|类型|说明| |–|–| |OH_EffectFilter|返回一个指向OH_EffectFilter实例的指针,参数无效时返回空指针。|

OH_ImageEffect_Configure()

ImageEffect_ErrorCode OH_ImageEffect_Configure(OH_ImageEffect *imageEffect, const char *key,const ImageEffect_Any *value)

描述

设置配置信息。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |const char *key|配置参数。| |const ImageEffect_Any *value|配置参数值。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。
EFFECT_KEY_ERROR:参数无效。
EFFECT_PARAM_ERROR:参数值无效。。|

OH_ImageEffect_SetOutputSurface()

ImageEffect_ErrorCode OH_ImageEffect_SetOutputSurface(OH_ImageEffect *imageEffect, OHNativeWindow *nativeWindow)

描述

设置输出Surface。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OHNativeWindow *nativeWindow|指向OHNativeWindow实例的指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_GetInputSurface()

ImageEffect_ErrorCode OH_ImageEffect_GetInputSurface(OH_ImageEffect *imageEffect, OHNativeWindow **nativeWindow)

描述

获取输入Surface。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OHNativeWindow **nativeWindow|指向OHNativeWindow实例的指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_SetInputPixelmap()

ImageEffect_ErrorCode OH_ImageEffect_SetInputPixelmap(OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap)

描述

设置输入的Pixelmap。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OH_PixelmapNative *pixelmap|指向OH_PixelmapNative实例的指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_SetOutputPixelmap()

ImageEffect_ErrorCode OH_ImageEffect_SetOutputPixelmap(OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap)

描述

设置输出的Pixelmap。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OH_PixelmapNative *pixelmap|指向OH_PixelmapNative实例的指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。
EFFECT_PARAM_ERROR:如果参数异常导致方法调用失败。|

OH_ImageEffect_SetInputNativeBuffer()

ImageEffect_ErrorCode OH_ImageEffect_SetInputNativeBuffer(OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer)

描述

设置输入的NativeBuffer。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OH_NativeBuffer *nativeBuffer|指向OH_NativeBuffer实例的指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_SetOutputNativeBuffer()

ImageEffect_ErrorCode OH_ImageEffect_SetOutputNativeBuffer(OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer)

描述

设置输出的NativeBuffer。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OH_NativeBuffer *nativeBuffer|指向OH_NativeBuffer实例的指针,允许为空,当输入为空时渲染结果返回到输入的OH_NativeBuffer对象上。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。
EFFECT_PARAM_ERROR:如果参数异常导致方法调用失败。|

OH_ImageEffect_SetInputUri()

ImageEffect_ErrorCode OH_ImageEffect_SetInputUri(OH_ImageEffect *imageEffect, const char *uri)

描述

设置输入的URI。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |const char *uri|图片URI(只支持Jpeg,Heif)。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_SetOutputUri()

ImageEffect_ErrorCode OH_ImageEffect_SetOutputUri(OH_ImageEffect *imageEffect, const char *uri)

描述

设置输出的URI。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |const char *uri|图片URI。输出URI的格式和输入保持一致,如果不支持Heif编码能力,则进行Jpeg编码。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_SetInputPicture()

ImageEffect_ErrorCode OH_ImageEffect_SetInputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture)

描述

设置输入的Picture。

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

起始版本: 13

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OH_PictureNative *picture|指向OH_PictureNative实例的指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_SetOutputPicture()

ImageEffect_ErrorCode OH_ImageEffect_SetOutputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture)

描述

设置输出的Picture。

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

起始版本: 13

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |OH_PictureNative *picture|指向OH_PictureNative实例的指针,允许为空,当输入为空时渲染结果返回到输入的OH_PictureNative对象上。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。
EFFECT_PARAM_ERROR:如果参数异常导致方法调用失败。|

OH_ImageEffect_Start()

ImageEffect_ErrorCode OH_ImageEffect_Start(OH_ImageEffect *imageEffect)

描述

启动效果器。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。
EFFECT_INPUT_OUTPUT_NOT_SUPPORTED:待处理输入、输出图像数据类型不一致。
EFFECT_COLOR_SPACE_NOT_MATCH:输入、输出图像色彩空间不配置。
EFFECT_ALLOCATE_MEMORY_FAILED:内存申请失败。|

OH_ImageEffect_Stop()

ImageEffect_ErrorCode OH_ImageEffect_Stop(OH_ImageEffect *imageEffect)

描述

停止生效效果。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_Release()

ImageEffect_ErrorCode OH_ImageEffect_Release(OH_ImageEffect *imageEffect)

描述

释放OH_ImageEffect实例资源。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_Save()

ImageEffect_ErrorCode OH_ImageEffect_Save(OH_ImageEffect *imageEffect, char **info)

描述

序列化效果器。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_ImageEffect *imageEffect|效果器指针。| |char **info|指向char数组的指针,返回序列化JSON字符串。|

返回:

|类型|说明| |–|–| |ImageEffect_ErrorCode|EFFECT_SUCCESS:方法调用成功。
EFFECT_ERROR_PARAM_INVALID:入参为空指针。|

OH_ImageEffect_Restore()

OH_ImageEffect *OH_ImageEffect_Restore(const char *info)

描述

反序列化效果器。

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

起始版本: 12

参数:

|参数项|描述| |–|–| |const char *info|序列化JSON字符串。|

返回:

|类型|说明| |–|–| |OH_ImageEffect|反序列化成功时返回OH_ImageEffect实例,否则返回空指针。|

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Image Kit(图片处理服务)

harmony 鸿蒙Interface (AuxiliaryPicture)

harmony 鸿蒙Interface (Image)

harmony 鸿蒙Interface (ImageCreator)

harmony 鸿蒙Interface (ImagePacker)

harmony 鸿蒙Interface (ImageReceiver)

harmony 鸿蒙Interface (ImageSource)

harmony 鸿蒙Interface (Metadata)

harmony 鸿蒙Interface (Picture)

harmony 鸿蒙Interface (PixelMap)

0  赞