KSYGPUPicMixer Class Reference

Inherits from GPUImageFilter
Declared in KSYGPUPicMixer.h

Overview

图像混合filter

  • 将多个图层的内容进行叠加
  • 每个图层有index, [0~n]
  • 叠加顺序为0在最下层, index 越大在更上层
  • 可以每个图层分别指定位置和大小
  • 可以每个图层分别制定透明度
  • 可以动态交换图层
  • 可以动态刷新图层内容(支持视频)
  • 输出的刷新率 与 masterLayer 保持一致

– init

初始化

- (id)init

Discussion

输出大小等于主要图层的大小

Declared In

KSYGPUPicMixer.h

– initWithOutputSize:

初始化,并制定输出图像的大小

- (id)initWithOutputSize:(CGSize)sz

Parameters

sz

输出图像的大小

Declared In

KSYGPUPicMixer.h

  masterLayer

设置主要图层 (默认为0)

@property (nonatomic, assign) NSUInteger masterLayer

Discussion

主要图层一般为视频图层, 当主要图层的输入刷新时, 输出才刷新

Declared In

KSYGPUPicMixer.h

– setPicRect:ofLayer:

设置图层的位置和大小 (单位为: 像素值 或者百分比)

- (void)setPicRect:(CGRect)rect ofLayer:(NSInteger)idx

Parameters

rect

大小和位置

idx

图层的索引

Discussion

缩放变形到对应的位置, 数值有如下两种表示方式 - 像素值:rect中宽度或高度的值必须大于1.0, 则认为是像素值 - 百分比:rect中宽度或高度的值必须小于等于1.0, 则认为是对应输出图像大小的百分比

保持宽高比的设置方法 - 宽为0, 则按照高度和输入图像的宽高比计算出宽度 - 高为0, 则按照宽度和输入图像的宽高比计算出高度

左上角的位置如果为非负值,则和宽高一样;如果为负数, 则自动居中放置

Declared In

KSYGPUPicMixer.h

– getPicRectOfLayer:

获取图层的位置和大小 (单位为: 像素值 或者百分比)

- (CGRect)getPicRectOfLayer:(NSInteger)idx

Parameters

idx

图层的索引

Return Value

位置和大小

Declared In

KSYGPUPicMixer.h

– setPicAlpha:ofLayer:

设置图层的透明度 (默认为1.0)

- (void)setPicAlpha:(CGFloat)alpha ofLayer:(NSInteger)idx

Parameters

alpha

透明度(0~1.0), 0为全透明

idx

图层的索引

Declared In

KSYGPUPicMixer.h

– getPicAlphaOfLayer:

获取图层的透明度

- (CGFloat)getPicAlphaOfLayer:(NSInteger)idx

Parameters

idx

图层的索引

Return Value

透明度

Declared In

KSYGPUPicMixer.h

– setPicRotation:ofLayer:

设置图层的旋转 (默认为norotation)

- (void)setPicRotation:(GPUImageRotationMode)rotation ofLayer:(NSInteger)idx

Parameters

rotation

透明度(0~1.0), 0为全透明

idx

图层的索引

Discussion

可用于设置镜像 (kGPUImageFlipHorizonal)

Declared In

KSYGPUPicMixer.h

– getPicRotationOfLayer:

获取图层的旋转模式

- (GPUImageRotationMode)getPicRotationOfLayer:(NSInteger)idx

Parameters

idx

图层的索引

Return Value

旋转模式

Declared In

KSYGPUPicMixer.h

– clearPicOfLayer:

清除特定图层的画面内容

- (void)clearPicOfLayer:(NSInteger)index

Parameters

index

指定被清除的图层

Discussion

比如切换不同的视频内容时,避免出现黑色背景

Declared In

KSYGPUPicMixer.h

  clearCanvasBeforeDraw

刷新前是否清除画布 (默认 YES)

@property (nonatomic, assign) BOOL clearCanvasBeforeDraw

Discussion

清除画布就是将画布的每个像素恢复为背景颜色

当存在覆盖整个画布的不透明图层时, 可以将本属性设为NO, 可以节省部分计算资源

Declared In

KSYGPUPicMixer.h