KSYGPUPicMixer Class Reference
Inherits from | GPUImageFilter |
---|---|
Declared in | KSYGPUPicMixer.h |
Overview
图像混合filter
- 将多个图层的内容进行叠加
- 每个图层有index, [0~n]
- 叠加顺序为0在最下层, index 越大在更上层
- 可以每个图层分别指定位置和大小
- 可以每个图层分别制定透明度
- 可以动态交换图层
- 可以动态刷新图层内容(支持视频)
- 输出的刷新率 与 masterLayer 保持一致
– 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