• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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