1# image_effect.h 2 3## 概述 4 5声明效果器相关接口。<br> 效果器提供了滤镜的添加、删除、查询等功能。开发者可以通过效果器提供的接口将多个滤镜组合串联,从而实现较为复杂的效果调节功能。<br> 同时,效果器支持多种输入类型,如Pixelmap、URI、Surface、Picture。不同的输入类型在效果器内部都会转换为内存对象,通过滤镜的效果处理,获得处理结果。 6 7**引用文件:** <multimedia/image_effect/image_effect.h> 8 9**库:** libimage_effect.so 10 11**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 12 13**起始版本:** 12 14 15**相关模块:** [ImageEffect](capi-imageeffect.md) 16 17## 汇总 18 19### 结构体 20 21| 名称 | typedef关键字 | 描述 | 22| -- | -- | -- | 23| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) | OH_ImageEffect | 定义效果器结构类型。 | 24 25### 函数 26 27| 名称 | 描述 | 28| -- | -- | 29| [OH_ImageEffect *OH_ImageEffect_Create(const char *name)](#oh_imageeffect_create) | 创建OH_ImageEffect实例,调用[OH_ImageEffect_Release](capi-image-effect-h.md#oh_imageeffect_release)进行资源释放。 | 30| [OH_EffectFilter *OH_ImageEffect_AddFilter(OH_ImageEffect *imageEffect, const char *filterName)](#oh_imageeffect_addfilter) | 添加滤镜。 | 31| [ImageEffect_ErrorCode OH_ImageEffect_AddFilterByFilter(OH_ImageEffect *imageEffect, OH_EffectFilter *filter)](#oh_imageeffect_addfilterbyfilter) | 添加指定滤镜。 | 32| [OH_EffectFilter *OH_ImageEffect_InsertFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName)](#oh_imageeffect_insertfilter) | 插入滤镜。 | 33| [ImageEffect_ErrorCode OH_ImageEffect_InsertFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index, OH_EffectFilter *filter)](#oh_imageeffect_insertfilterbyfilter) | 按指定位置插入滤镜。 | 34| [int32_t OH_ImageEffect_RemoveFilter(OH_ImageEffect *imageEffect, const char *filterName)](#oh_imageeffect_removefilter) | 移除滤镜。 | 35| [ImageEffect_ErrorCode OH_ImageEffect_RemoveFilterByIndex(OH_ImageEffect *imageEffect, uint32_t index)](#oh_imageeffect_removefilterbyindex) | 移除指定位置滤镜。 | 36| [OH_EffectFilter *OH_ImageEffect_ReplaceFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName)](#oh_imageeffect_replacefilter) | 替换滤镜。 | 37| [ImageEffect_ErrorCode OH_ImageEffect_ReplaceFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName)](#oh_imageeffect_replacefilterbyfilter) | 替换指定位置滤镜。 | 38| [int32_t OH_ImageEffect_GetFilterCount(OH_ImageEffect *imageEffect)](#oh_imageeffect_getfiltercount) | 查询已添加滤镜个数。 | 39| [OH_EffectFilter *OH_ImageEffect_GetFilter(OH_ImageEffect *imageEffect, uint32_t index)](#oh_imageeffect_getfilter) | 查询已添加滤镜。 | 40| [ImageEffect_ErrorCode OH_ImageEffect_Configure(OH_ImageEffect *imageEffect, const char *key, const ImageEffect_Any *value)](#oh_imageeffect_configure) | 设置配置信息。 | 41| [ImageEffect_ErrorCode OH_ImageEffect_SetOutputSurface(OH_ImageEffect *imageEffect, OHNativeWindow *nativeWindow)](#oh_imageeffect_setoutputsurface) | 设置输出Surface。 | 42| [ImageEffect_ErrorCode OH_ImageEffect_GetInputSurface(OH_ImageEffect *imageEffect, OHNativeWindow **nativeWindow)](#oh_imageeffect_getinputsurface) | 获取输入Surface。 | 43| [ImageEffect_ErrorCode OH_ImageEffect_SetInputPixelmap(OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap)](#oh_imageeffect_setinputpixelmap) | 设置输入的Pixelmap。 | 44| [ImageEffect_ErrorCode OH_ImageEffect_SetOutputPixelmap(OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap)](#oh_imageeffect_setoutputpixelmap) | 设置输出的Pixelmap。 | 45| [ImageEffect_ErrorCode OH_ImageEffect_SetInputNativeBuffer(OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer)](#oh_imageeffect_setinputnativebuffer) | 设置输入的NativeBuffer。 | 46| [ImageEffect_ErrorCode OH_ImageEffect_SetOutputNativeBuffer(OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer)](#oh_imageeffect_setoutputnativebuffer) | 设置输出的NativeBuffer。 | 47| [ImageEffect_ErrorCode OH_ImageEffect_SetInputUri(OH_ImageEffect *imageEffect, const char *uri)](#oh_imageeffect_setinputuri) | 设置输入的URI。 | 48| [ImageEffect_ErrorCode OH_ImageEffect_SetOutputUri(OH_ImageEffect *imageEffect, const char *uri)](#oh_imageeffect_setoutputuri) | 设置输出的URI。 | 49| [ImageEffect_ErrorCode OH_ImageEffect_SetInputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture)](#oh_imageeffect_setinputpicture) | 设置输入的Picture。 | 50| [ImageEffect_ErrorCode OH_ImageEffect_SetOutputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture)](#oh_imageeffect_setoutputpicture) | 设置输出的Picture。 | 51| [ImageEffect_ErrorCode OH_ImageEffect_SetInputTextureId(OH_ImageEffect *imageEffect, int32_t textureId,int32_t colorSpace)](#oh_imageeffect_setinputtextureid) | 配置输入包含图片内容的纹理标识。 | 52| [ImageEffect_ErrorCode OH_ImageEffect_SetOutputTextureId(OH_ImageEffect *imageEffect, int32_t textureId)](#oh_imageeffect_setoutputtextureid) | 配置输出包含渲染后的纹理标识。 | 53| [ImageEffect_ErrorCode OH_ImageEffect_Start(OH_ImageEffect *imageEffect)](#oh_imageeffect_start) | 启动效果器。 | 54| [ImageEffect_ErrorCode OH_ImageEffect_Stop(OH_ImageEffect *imageEffect)](#oh_imageeffect_stop) | 停止生效效果。 | 55| [ImageEffect_ErrorCode OH_ImageEffect_Release(OH_ImageEffect *imageEffect)](#oh_imageeffect_release) | 释放OH_ImageEffect实例资源。 | 56| [ImageEffect_ErrorCode OH_ImageEffect_Save(OH_ImageEffect *imageEffect, char **info)](#oh_imageeffect_save) | 序列化效果器。 | 57| [OH_ImageEffect *OH_ImageEffect_Restore(const char *info)](#oh_imageeffect_restore) | 反序列化效果器。 | 58 59## 函数说明 60 61### OH_ImageEffect_Create() 62 63``` 64OH_ImageEffect *OH_ImageEffect_Create(const char *name) 65``` 66 67**描述** 68 69创建OH_ImageEffect实例,调用[OH_ImageEffect_Release](capi-image-effect-h.md#oh_imageeffect_release)进行资源释放。 70 71**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 72 73**起始版本:** 12 74 75 76**参数:** 77 78| 参数项 | 描述 | 79| -- | -- | 80| const char *name | 效果器名,用于标识效果器,由用户自定义,建议为非空的字符串。 | 81 82**返回:** 83 84| 类型 | 说明 | 85| -- | -- | 86| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) * | 返回一个指向OH_ImageEffect实例的指针,创建失败时返回空指针。 | 87 88### OH_ImageEffect_AddFilter() 89 90``` 91OH_EffectFilter *OH_ImageEffect_AddFilter(OH_ImageEffect *imageEffect, const char *filterName) 92``` 93 94**描述** 95 96添加滤镜。 97 98**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 99 100**起始版本:** 12 101 102 103**参数:** 104 105| 参数项 | 描述 | 106| -- | -- | 107| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 108| const char *filterName | 滤镜名。 | 109 110**返回:** 111 112| 类型 | 说明 | 113| -- | -- | 114| [OH_EffectFilter](capi-imageeffect-oh-effectfilter.md) * | 返回一个指向OH_EffectFilter实例的指针,滤镜名无效时返回空指针。 | 115 116### OH_ImageEffect_AddFilterByFilter() 117 118``` 119ImageEffect_ErrorCode OH_ImageEffect_AddFilterByFilter(OH_ImageEffect *imageEffect, OH_EffectFilter *filter) 120``` 121 122**描述** 123 124添加指定滤镜。 125 126**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 127 128**起始版本:** 12 129 130 131**参数:** 132 133| 参数项 | 描述 | 134| -- | -- | 135| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 136| [OH_EffectFilter](capi-imageeffect-oh-effectfilter.md) *filter | 滤镜指针。 | 137 138**返回:** 139 140| 类型 | 说明 | 141| -- | -- | 142| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 143 144### OH_ImageEffect_InsertFilter() 145 146``` 147OH_EffectFilter *OH_ImageEffect_InsertFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName) 148``` 149 150**描述** 151 152插入滤镜。 153 154**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 155 156**起始版本:** 12 157 158 159**参数:** 160 161| 参数项 | 描述 | 162| -- | -- | 163| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 164| uint32_t index | 插入滤镜位置索引。 | 165| const char *filterName | 滤镜名。 | 166 167**返回:** 168 169| 类型 | 说明 | 170| -- | -- | 171| [OH_EffectFilter](capi-imageeffect-oh-effectfilter.md) * | 返回一个指向OH_EffectFilter实例的指针,参数无效时返回空指针。 | 172 173### OH_ImageEffect_InsertFilterByFilter() 174 175``` 176ImageEffect_ErrorCode OH_ImageEffect_InsertFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index,OH_EffectFilter *filter) 177``` 178 179**描述** 180 181按指定位置插入滤镜。 182 183**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 184 185**起始版本:** 12 186 187 188**参数:** 189 190| 参数项 | 描述 | 191| -- | -- | 192| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 193| uint32_t index | 插入滤镜位置索引。 | 194| [OH_EffectFilter](capi-imageeffect-oh-effectfilter.md) *filter | 滤镜指针。 | 195 196**返回:** 197 198| 类型 | 说明 | 199| -- | -- | 200| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 201 202### OH_ImageEffect_RemoveFilter() 203 204``` 205int32_t OH_ImageEffect_RemoveFilter(OH_ImageEffect *imageEffect, const char *filterName) 206``` 207 208**描述** 209 210移除滤镜。 211 212**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 213 214**起始版本:** 12 215 216 217**参数:** 218 219| 参数项 | 描述 | 220| -- | -- | 221| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 222| const char *filterName | 滤镜名。 | 223 224**返回:** 225 226| 类型 | 说明 | 227| -- | -- | 228| int32_t | 所删除的滤镜个数。 | 229 230### OH_ImageEffect_RemoveFilterByIndex() 231 232``` 233ImageEffect_ErrorCode OH_ImageEffect_RemoveFilterByIndex(OH_ImageEffect *imageEffect, uint32_t index) 234``` 235 236**描述** 237 238移除指定位置滤镜。 239 240**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 241 242**起始版本:** 12 243 244 245**参数:** 246 247| 参数项 | 描述 | 248| -- | -- | 249| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 250| uint32_t index | 移除滤镜位置索引。 | 251 252**返回:** 253 254| 类型 | 说明 | 255| -- | -- | 256| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 257 258### OH_ImageEffect_ReplaceFilter() 259 260``` 261OH_EffectFilter *OH_ImageEffect_ReplaceFilter(OH_ImageEffect *imageEffect, uint32_t index, const char *filterName) 262``` 263 264**描述** 265 266替换滤镜。 267 268**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 269 270**起始版本:** 12 271 272 273**参数:** 274 275| 参数项 | 描述 | 276| -- | -- | 277| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 278| const char *filterName | 滤镜名。 | 279 280**返回:** 281 282| 类型 | 说明 | 283| -- | -- | 284| [OH_EffectFilter](capi-imageeffect-oh-effectfilter.md) * | 返回一个指向OH_EffectFilter实例的指针,替换失败时返回空指针。 | 285 286### OH_ImageEffect_ReplaceFilterByFilter() 287 288``` 289ImageEffect_ErrorCode OH_ImageEffect_ReplaceFilterByFilter(OH_ImageEffect *imageEffect, uint32_t index,const char *filterName) 290``` 291 292**描述** 293 294替换指定位置滤镜。 295 296**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 297 298**起始版本:** 12 299 300 301**参数:** 302 303| 参数项 | 描述 | 304| -- | -- | 305| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 306| uint32_t index | 替换滤镜位置索引。 | 307| const char *filterName | 滤镜名。 | 308 309**返回:** 310 311| 类型 | 说明 | 312| -- | -- | 313| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 314 315### OH_ImageEffect_GetFilterCount() 316 317``` 318int32_t OH_ImageEffect_GetFilterCount(OH_ImageEffect *imageEffect) 319``` 320 321**描述** 322 323查询已添加滤镜个数。 324 325**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 326 327**起始版本:** 12 328 329 330**参数:** 331 332| 参数项 | 描述 | 333| -- | -- | 334| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 335 336**返回:** 337 338| 类型 | 说明 | 339| -- | -- | 340| int32_t | 已添加的滤镜个数。 | 341 342### OH_ImageEffect_GetFilter() 343 344``` 345OH_EffectFilter *OH_ImageEffect_GetFilter(OH_ImageEffect *imageEffect, uint32_t index) 346``` 347 348**描述** 349 350查询已添加滤镜。 351 352**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 353 354**起始版本:** 12 355 356 357**参数:** 358 359| 参数项 | 描述 | 360| -- | -- | 361| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 362| uint32_t index | 待查询滤镜位置索引。 | 363 364**返回:** 365 366| 类型 | 说明 | 367| -- | -- | 368| [OH_EffectFilter](capi-imageeffect-oh-effectfilter.md) * | 返回一个指向OH_EffectFilter实例的指针,参数无效时返回空指针。 | 369 370### OH_ImageEffect_Configure() 371 372``` 373ImageEffect_ErrorCode OH_ImageEffect_Configure(OH_ImageEffect *imageEffect, const char *key,const ImageEffect_Any *value) 374``` 375 376**描述** 377 378设置配置信息。 379 380**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 381 382**起始版本:** 12 383 384 385**参数:** 386 387| 参数项 | 描述 | 388| -- | -- | 389| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 390| const char *key | 配置参数。 | 391| [const ImageEffect_Any](capi-imageeffect-imageeffect-any.md) *value | 配置参数值。 | 392 393**返回:** 394 395| 类型 | 说明 | 396| -- | -- | 397| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。<br> EFFECT_KEY_ERROR:参数无效。<br> EFFECT_PARAM_ERROR:参数值无效。 | 398 399### OH_ImageEffect_SetOutputSurface() 400 401``` 402ImageEffect_ErrorCode OH_ImageEffect_SetOutputSurface(OH_ImageEffect *imageEffect, OHNativeWindow *nativeWindow) 403``` 404 405**描述** 406 407设置输出Surface。 408 409**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 410 411**起始版本:** 12 412 413 414**参数:** 415 416| 参数项 | 描述 | 417| -- | -- | 418| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 419| OHNativeWindow *nativeWindow | 指向OHNativeWindow实例的指针。 | 420 421**返回:** 422 423| 类型 | 说明 | 424| -- | -- | 425| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 426 427### OH_ImageEffect_GetInputSurface() 428 429``` 430ImageEffect_ErrorCode OH_ImageEffect_GetInputSurface(OH_ImageEffect *imageEffect, OHNativeWindow **nativeWindow) 431``` 432 433**描述** 434 435获取输入Surface。 436 437**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 438 439**起始版本:** 12 440 441 442**参数:** 443 444| 参数项 | 描述 | 445| -- | -- | 446| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 447| OHNativeWindow **nativeWindow | 指向OHNativeWindow实例的指针。 | 448 449**返回:** 450 451| 类型 | 说明 | 452| -- | -- | 453| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 454 455### OH_ImageEffect_SetInputPixelmap() 456 457``` 458ImageEffect_ErrorCode OH_ImageEffect_SetInputPixelmap(OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap) 459``` 460 461**描述** 462 463设置输入的Pixelmap。 464 465**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 466 467**起始版本:** 12 468 469 470**参数:** 471 472| 参数项 | 描述 | 473| -- | -- | 474| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 475| [OH_PixelmapNative](capi-image-nativemodule-oh-pixelmapnative.md) *pixelmap | 指向OH_PixelmapNative实例的指针。 | 476 477**返回:** 478 479| 类型 | 说明 | 480| -- | -- | 481| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 482 483### OH_ImageEffect_SetOutputPixelmap() 484 485``` 486ImageEffect_ErrorCode OH_ImageEffect_SetOutputPixelmap(OH_ImageEffect *imageEffect, OH_PixelmapNative *pixelmap) 487``` 488 489**描述** 490 491设置输出的Pixelmap。 492 493**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 494 495**起始版本:** 12 496 497 498**参数:** 499 500| 参数项 | 描述 | 501| -- | -- | 502| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 503| [OH_PixelmapNative](capi-image-nativemodule-oh-pixelmapnative.md) *pixelmap | 指向OH_PixelmapNative实例的指针。 | 504 505**返回:** 506 507| 类型 | 说明 | 508| -- | -- | 509| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。<br> EFFECT_PARAM_ERROR:如果参数异常导致方法调用失败。 | 510 511### OH_ImageEffect_SetInputNativeBuffer() 512 513``` 514ImageEffect_ErrorCode OH_ImageEffect_SetInputNativeBuffer(OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer) 515``` 516 517**描述** 518 519设置输入的NativeBuffer。 520 521**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 522 523**起始版本:** 12 524 525 526**参数:** 527 528| 参数项 | 描述 | 529| -- | -- | 530| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 531| [OH_NativeBuffer](../apis-arkgraphics2d/capi-oh-nativebuffer-oh-nativebuffer.md) *nativeBuffer | 指向OH_NativeBuffer实例的指针。 | 532 533**返回:** 534 535| 类型 | 说明 | 536| -- | -- | 537| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 538 539### OH_ImageEffect_SetOutputNativeBuffer() 540 541``` 542ImageEffect_ErrorCode OH_ImageEffect_SetOutputNativeBuffer(OH_ImageEffect *imageEffect, OH_NativeBuffer *nativeBuffer) 543``` 544 545**描述** 546 547设置输出的NativeBuffer。 548 549**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 550 551**起始版本:** 12 552 553 554**参数:** 555 556| 参数项 | 描述 | 557| -- | -- | 558| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 559| [OH_NativeBuffer](../apis-arkgraphics2d/capi-oh-nativebuffer-oh-nativebuffer.md) *nativeBuffer | 指向OH_NativeBuffer实例的指针,允许为空,当输入为空时渲染结果返回到输入的OH_NativeBuffer对象上。 | 560 561**返回:** 562 563| 类型 | 说明 | 564| -- | -- | 565| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。<br> EFFECT_PARAM_ERROR:如果参数异常导致方法调用失败。 | 566 567### OH_ImageEffect_SetInputUri() 568 569``` 570ImageEffect_ErrorCode OH_ImageEffect_SetInputUri(OH_ImageEffect *imageEffect, const char *uri) 571``` 572 573**描述** 574 575设置输入的URI。 576 577**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 578 579**起始版本:** 12 580 581 582**参数:** 583 584| 参数项 | 描述 | 585| -- | -- | 586| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 587| const char *uri | 图片URI(只支持Jpeg,Heif)。 | 588 589**返回:** 590 591| 类型 | 说明 | 592| -- | -- | 593| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 594 595### OH_ImageEffect_SetOutputUri() 596 597``` 598ImageEffect_ErrorCode OH_ImageEffect_SetOutputUri(OH_ImageEffect *imageEffect, const char *uri) 599``` 600 601**描述** 602 603设置输出的URI。 604 605**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 606 607**起始版本:** 12 608 609 610**参数:** 611 612| 参数项 | 描述 | 613| -- | -- | 614| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 615| const char *uri | 图片URI。输出URI的格式和输入保持一致,如果不支持Heif编码能力,则进行Jpeg编码。 | 616 617**返回:** 618 619| 类型 | 说明 | 620| -- | -- | 621| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 622 623### OH_ImageEffect_SetInputPicture() 624 625``` 626ImageEffect_ErrorCode OH_ImageEffect_SetInputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture) 627``` 628 629**描述** 630 631设置输入的Picture。 632 633**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 634 635**起始版本:** 13 636 637 638**参数:** 639 640| 参数项 | 描述 | 641| -- | -- | 642| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 643| [OH_PictureNative](capi-image-nativemodule-oh-picturenative.md) *picture | 指向OH_PictureNative实例的指针。 | 644 645**返回:** 646 647| 类型 | 说明 | 648| -- | -- | 649| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 650 651### OH_ImageEffect_SetOutputPicture() 652 653``` 654ImageEffect_ErrorCode OH_ImageEffect_SetOutputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture) 655``` 656 657**描述** 658 659设置输出的Picture。 660 661**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 662 663**起始版本:** 13 664 665 666**参数:** 667 668| 参数项 | 描述 | 669| -- | -- | 670| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 671| [OH_PictureNative](capi-image-nativemodule-oh-picturenative.md) *picture | 指向OH_PictureNative实例的指针,允许为空,当输入为空时渲染结果返回到输入的OH_PictureNative对象上。 | 672 673**返回:** 674 675| 类型 | 说明 | 676| -- | -- | 677| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。<br> EFFECT_PARAM_ERROR:如果参数异常导致方法调用失败。 | 678 679### OH_ImageEffect_SetInputTextureId() 680 681``` 682ImageEffect_ErrorCode OH_ImageEffect_SetInputTextureId(OH_ImageEffect *imageEffect, int32_t textureId,int32_t colorSpace) 683``` 684 685**描述** 686 687配置输入包含图片内容的纹理标识。 688 689**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 690 691**起始版本:** 20 692 693 694**参数:** 695 696| 参数项 | 描述 | 697| -- | -- | 698| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | OH_ImageEffect结构体实例指针。 | 699| int32_t textureId | 包含图片内容的纹理标识,纹理标识必须是有效的且绑定了GL_TEXTURE_2D类型的纹理。 | 700| int32_t colorSpace | 图片对应的色彩空间。 | 701 702**返回:** 703 704| 类型 | 说明 | 705| -- | -- | 706| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针或参数超出有效范围。<br> EFFECT_PARAM_ERROR:参数缺失或参数错误。 | 707 708### OH_ImageEffect_SetOutputTextureId() 709 710``` 711ImageEffect_ErrorCode OH_ImageEffect_SetOutputTextureId(OH_ImageEffect *imageEffect, int32_t textureId) 712``` 713 714**描述** 715 716配置输出包含渲染后的纹理标识。 717 718**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 719 720**起始版本:** 20 721 722 723**参数:** 724 725| 参数项 | 描述 | 726| -- | -- | 727| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | OH_ImageEffect结构体实例指针。 | 728| int32_t textureId | 包含图片渲染后内容的纹理标识,纹理标识必须是一个有效的纹理。<br> 如果纹理标识未被绑定纹理图片,纹理标识会自动绑定GL_TEXTURE_2D类型;<br> 如果纹理标识已经被绑定纹理且尺寸不合适,结果可能会被裁剪或部分填充到此纹理上。 | 729 730**返回:** 731 732| 类型 | 说明 | 733| -- | -- | 734| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针或参数超出有效范围。<br> EFFECT_PARAM_ERROR:参数缺失或参数错误。 | 735 736### OH_ImageEffect_Start() 737 738``` 739ImageEffect_ErrorCode OH_ImageEffect_Start(OH_ImageEffect *imageEffect) 740``` 741 742**描述** 743 744启动效果器。 745 746**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 747 748**起始版本:** 12 749 750 751**参数:** 752 753| 参数项 | 描述 | 754| -- | -- | 755| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 756 757**返回:** 758 759| 类型 | 说明 | 760| -- | -- | 761| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。<br> EFFECT_INPUT_OUTPUT_NOT_SUPPORTED:待处理输入、输出图像数据类型不一致。<br> EFFECT_COLOR_SPACE_NOT_MATCH:输入、输出图像色彩空间不配置。<br> EFFECT_ALLOCATE_MEMORY_FAILED:内存申请失败。 | 762 763### OH_ImageEffect_Stop() 764 765``` 766ImageEffect_ErrorCode OH_ImageEffect_Stop(OH_ImageEffect *imageEffect) 767``` 768 769**描述** 770 771停止生效效果。 772 773**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 774 775**起始版本:** 12 776 777 778**参数:** 779 780| 参数项 | 描述 | 781| -- | -- | 782| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 783 784**返回:** 785 786| 类型 | 说明 | 787| -- | -- | 788| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 789 790### OH_ImageEffect_Release() 791 792``` 793ImageEffect_ErrorCode OH_ImageEffect_Release(OH_ImageEffect *imageEffect) 794``` 795 796**描述** 797 798释放OH_ImageEffect实例资源。 799 800**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 801 802**起始版本:** 12 803 804 805**参数:** 806 807| 参数项 | 描述 | 808| -- | -- | 809| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 810 811**返回:** 812 813| 类型 | 说明 | 814| -- | -- | 815| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 816 817### OH_ImageEffect_Save() 818 819``` 820ImageEffect_ErrorCode OH_ImageEffect_Save(OH_ImageEffect *imageEffect, char **info) 821``` 822 823**描述** 824 825序列化效果器。 826 827**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 828 829**起始版本:** 12 830 831 832**参数:** 833 834| 参数项 | 描述 | 835| -- | -- | 836| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) *imageEffect | 效果器指针。 | 837| char **info | 指向char数组的指针,返回序列化JSON字符串。 | 838 839**返回:** 840 841| 类型 | 说明 | 842| -- | -- | 843| [ImageEffect_ErrorCode](capi-image-effect-errors-h.md#imageeffect_errorcode) | EFFECT_SUCCESS:方法调用成功。<br> EFFECT_ERROR_PARAM_INVALID:入参为空指针。 | 844 845### OH_ImageEffect_Restore() 846 847``` 848OH_ImageEffect *OH_ImageEffect_Restore(const char *info) 849``` 850 851**描述** 852 853反序列化效果器。 854 855**系统能力:** SystemCapability.Multimedia.ImageEffect.Core 856 857**起始版本:** 12 858 859 860**参数:** 861 862| 参数项 | 描述 | 863| -- | -- | 864| const char *info | 序列化JSON字符串。 | 865 866**返回:** 867 868| 类型 | 说明 | 869| -- | -- | 870| [OH_ImageEffect](capi-imageeffect-oh-imageeffect.md) * | 反序列化成功时返回OH_ImageEffect实例,否则返回空指针。 | 871 872 873