1# EffectKit 2 3 4## 概述 5 6提供处理图像的一些基础能力,包括对当前图像的亮度调节、模糊化、灰度调节等。 7 8**系统能力:** SystemCapability.Multimedia.Image.Core 9 10**起始版本:** 12 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [effect_filter.h](effect__filter_8h.md) | 声明滤镜效果的接口。 | 21| [effect_types.h](effect__types_8h.md) | 声明滤镜效果的数据类型。 | 22 23 24### 结构体 25 26| 名称 | 描述 | 27| -------- | -------- | 28| struct [OH_Filter_ColorMatrix](_o_h___filter___color_matrix.md) | 定义一个用来创建滤镜效果的矩阵。 | 29 30 31### 类型定义 32 33| 名称 | 描述 | 34| -------- | -------- | 35| typedef struct [OH_Filter](#oh_filter) [OH_Filter](#oh_filter) | 滤镜结构体,用来生成滤镜位图。 | 36| typedef struct [OH_PixelmapNative](#oh_pixelmapnative) [OH_PixelmapNative](#oh_pixelmapnative) | 定义一个位图。 | 37 38 39### 枚举 40 41| 名称 | 描述 | 42| -------- | -------- | 43| [EffectErrorCode](#effecterrorcode) { EFFECT_SUCCESS = 0, EFFECT_BAD_PARAMETER = 401, EFFECT_UNSUPPORTED_OPERATION = 7600201, EFFECT_UNKNOWN_ERROR = 7600901 } | 定义滤镜效果的状态码。 | 44| [EffectTileMode](#effecttilemode) { CLAMP = 0, REPEAT, MIRROR, DECAL } | 定义着色器效果平铺模式的枚举。 | 45 46 47### 函数 48 49| 名称 | 描述 | 50| -------- | -------- | 51| [EffectErrorCode](#effecterrorcode) [OH_Filter_CreateEffect](#oh_filter_createeffect) ([OH_PixelmapNative](#oh_pixelmapnative) \*pixelmap, [OH_Filter](#oh_filter) \*\*filter) | 创建一个OH_Filter对象。 | 52| [EffectErrorCode](#effecterrorcode) [OH_Filter_Release](#oh_filter_release) ([OH_Filter](#oh_filter) \*filter) | 释放OH_Filter对象。 | 53| [EffectErrorCode](#effecterrorcode) [OH_Filter_Blur](#oh_filter_blur) ([OH_Filter](#oh_filter) \*filter, float radius) | 创建一个毛玻璃滤镜效果,然后添加到滤镜里面。 | 54| [EffectErrorCode](#effecterrorcode) [OH_Filter_BlurWithTileMode](#oh_filter_blurwithtilemode) ([OH_Filter](#oh_filter) \*filter, float radius, [EffectTileMode](#effecttilemode) tileMode) | 创建一个毛玻璃滤镜效果,然后添加到滤镜里面。 | 55| [EffectErrorCode](#effecterrorcode) [OH_Filter_Brighten](#oh_filter_brighten) ([OH_Filter](#oh_filter) \*filter, float brightness) | 创建一个提亮效果并且添加到滤镜中。 | 56| [EffectErrorCode](#effecterrorcode) [OH_Filter_GrayScale](#oh_filter_grayscale) ([OH_Filter](#oh_filter) \*filter) | 创建一个灰度效果并且添加到滤镜中。 | 57| [EffectErrorCode](#effecterrorcode) [OH_Filter_Invert](#oh_filter_invert) ([OH_Filter](#oh_filter) \*filter) | 创建一个反色效果并且添加到滤镜中。 | 58| [EffectErrorCode](#effecterrorcode) [OH_Filter_SetColorMatrix](#oh_filter_setcolormatrix) ([OH_Filter](#oh_filter) \*filter, [OH_Filter_ColorMatrix](_o_h___filter___color_matrix.md) \*matrix) | 通过矩阵创建一个自定义的效果并且添加到滤镜中。 | 59| [EffectErrorCode](#effecterrorcode) [OH_Filter_GetEffectPixelMap](#oh_filter_geteffectpixelmap) ([OH_Filter](#oh_filter) \*filter, [OH_PixelmapNative](#oh_pixelmapnative) \*\*pixelmap) | 获取滤镜生成的位图。 | 60 61 62## 类型定义说明 63 64 65### OH_Filter 66 67``` 68typedef struct OH_Filter OH_Filter 69``` 70 71**描述** 72 73滤镜结构体,用来生成滤镜位图。 74 75**起始版本:** 12 76 77 78### OH_PixelmapNative 79 80``` 81typedef struct OH_PixelmapNative OH_PixelmapNative 82``` 83 84**描述** 85 86定义一个位图。 87 88**起始版本:** 12 89 90 91## 枚举类型说明 92 93 94### EffectErrorCode 95 96``` 97enum EffectErrorCode 98``` 99 100**描述** 101 102定义滤镜效果的状态码。 103 104**起始版本:** 12 105 106| 枚举值 | 描述 | 107| -------- | -------- | 108| EFFECT_SUCCESS | 成功。 | 109| EFFECT_BAD_PARAMETER | 无效的参数。 | 110| EFFECT_UNSUPPORTED_OPERATION | 不支持的操作。 | 111| EFFECT_UNKNOWN_ERROR | 未知错误。 | 112 113 114### EffectTileMode 115 116``` 117enum EffectTileMode 118``` 119 120**描述** 121 122定义着色器效果平铺模式的枚举。 123 124**起始版本:** 14 125 126| 枚举值 | 描述 | 127| -------- | -------- | 128| CLAMP | 如果着色器效果超出其原始边界,剩余区域使用着色器的边缘颜色填充。 | 129| REPEAT | 在水平和垂直方向上重复着色器效果。 | 130| MIRROR | 在水平和垂直方向上重复着色器效果,交替镜像图像,以便相邻图像始终接合。 | 131| DECAL | 仅在其原始边界内渲染着色器效果。 | 132 133 134## 函数说明 135 136 137### OH_Filter_Blur() 138 139``` 140EffectErrorCode OH_Filter_Blur (OH_Filter* filter, float radius ) 141``` 142 143**描述** 144 145创建一个毛玻璃滤镜效果,然后添加到滤镜里面。 146 147**起始版本:** 12 148 149**参数:** 150 151| 名称 | 描述 | 152| -------- | -------- | 153| filter | 滤镜指针。 | 154| radius | 毛玻璃效果的模糊半径,单位为像素。 | 155 156**返回:** 157 158返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 159 160 161### OH_Filter_BlurWithTileMode() 162 163``` 164EffectErrorCode OH_Filter_BlurWithTileMode (OH_Filter* filter, float radius, EffectTileMode tileMode ) 165``` 166 167**描述** 168 169创建一个毛玻璃滤镜效果,然后添加到滤镜里面。 170 171**起始版本:** 14 172 173**参数:** 174 175| 名称 | 描述 | 176| -------- | -------- | 177| filter | 滤镜指针。 | 178| radius | 毛玻璃效果的模糊半径,单位为像素。 | 179| tileMode | 着色器效果平铺模式,支持可选的具体模式可见[EffectTileMode](#effecttilemode)枚举。 | 180 181**返回:** 182 183返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 184 185操作成功则返回EFFECT_SUCCESS。 186 187无效参数则返回EFFECT_BAD_PARAMETER。 188 189 190### OH_Filter_Brighten() 191 192``` 193EffectErrorCode OH_Filter_Brighten (OH_Filter* filter, float brightness ) 194``` 195 196**描述** 197 198创建一个提亮效果并且添加到滤镜中。 199 200**起始版本:** 12 201 202**参数:** 203 204| 名称 | 描述 | 205| -------- | -------- | 206| filter | 滤镜指针。 | 207| brightness | 提亮效果的亮度值,取值范围在0-1之间,取值为0时图像保持不变。 | 208 209**返回:** 210 211返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 212 213 214### OH_Filter_CreateEffect() 215 216``` 217EffectErrorCode OH_Filter_CreateEffect (OH_PixelmapNative* pixelmap, OH_Filter** filter ) 218``` 219 220**描述** 221 222创建一个OH_Filter对象。 223 224**起始版本:** 12 225 226**参数:** 227 228| 名称 | 描述 | 229| -------- | -------- | 230| pixelmap | 创建滤镜的位图。 | 231| filter | 用来接收滤镜的二级指针。 | 232 233**返回:** 234 235返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 236 237 238### OH_Filter_GetEffectPixelMap() 239 240``` 241EffectErrorCode OH_Filter_GetEffectPixelMap (OH_Filter* filter, OH_PixelmapNative** pixelmap ) 242``` 243 244**描述** 245 246获取滤镜生成的位图。 247 248**起始版本:** 12 249 250**参数:** 251 252| 名称 | 描述 | 253| -------- | -------- | 254| filter | 用来创建位图的滤镜指针。 | 255| pixelmap | 用来接收位图的二级指针。 | 256 257**返回:** 258 259返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 260 261 262### OH_Filter_GrayScale() 263 264``` 265EffectErrorCode OH_Filter_GrayScale (OH_Filter* filter) 266``` 267 268**描述** 269 270创建一个灰度效果并且添加到滤镜中。 271 272**起始版本:** 12 273 274**参数:** 275 276| 名称 | 描述 | 277| -------- | -------- | 278| filter | 滤镜指针。 | 279 280**返回:** 281 282返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 283 284 285### OH_Filter_Invert() 286 287``` 288EffectErrorCode OH_Filter_Invert (OH_Filter* filter) 289``` 290 291**描述** 292 293创建一个反色效果并且添加到滤镜中。 294 295**起始版本:** 12 296 297**参数:** 298 299| 名称 | 描述 | 300| -------- | -------- | 301| filter | 滤镜指针。 | 302 303**返回:** 304 305返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 306 307 308### OH_Filter_Release() 309 310``` 311EffectErrorCode OH_Filter_Release (OH_Filter* filter) 312``` 313 314**描述** 315 316释放OH_Filter对象。 317 318**起始版本:** 12 319 320**参数:** 321 322| 名称 | 描述 | 323| -------- | -------- | 324| filter | 被释放的对象指针。 | 325 326**返回:** 327 328返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 329 330 331### OH_Filter_SetColorMatrix() 332 333``` 334EffectErrorCode OH_Filter_SetColorMatrix (OH_Filter* filter, OH_Filter_ColorMatrix* matrix ) 335``` 336 337**描述** 338 339通过矩阵创建一个自定义的效果并且添加到滤镜中。 340 341**起始版本:** 12 342 343**参数:** 344 345| 名称 | 描述 | 346| -------- | -------- | 347| filter | 滤镜指针。 | 348| matrix | 用来创建滤镜的自定义矩阵[OH_Filter_ColorMatrix](_o_h___filter___color_matrix.md)。 | 349 350**返回:** 351 352返回结果参见状态码[EffectErrorCode](#effecterrorcode)。 353