-
Notifications
You must be signed in to change notification settings - Fork 271
picMixer
pengbin edited this page Sep 13, 2016
·
1 revision
直播推流时, 可能会有叠加水印, 叠加文字, 叠加背景图片等需求. SDK中提供了 KSYGPUPicMixer 作为一个抽象的图层混合工具,提供如下功能
- 将多个图层的内容进行叠加, 每个图层用index[0~n] 作为标示
- 叠加顺序为0层在最下层, index越大在更上层
- 可以每个图层分别指定位置和大小
- 可以每个图层分别制定透明度
- 可以动态交换图层
- 可以动态刷新图层内容(支持视频)
- 输出的刷新率 与 masterLayer 保持一致
KSYGPUPicMixer 本质上是一个多输入的GPUImageFilter, 使用方法, 就是将其作为target 添加到数据源中. 数据源可以是GPUImagePicture, Camera, 或者其他GPUImageFilter. 使用实例可以参考kit类代码.下面是一个简单的示例:
_vMixer = [[KSYGPUPicMixer alloc] initWithOutputSize:CGSizeMake(540, 960)];
_vMixer.masterLayer = 0;
[_capDev addTarget:_vMixer atTextureLocation:0];
[_pic addTarget:_vMixer atTextureLocation:1];
[_yuvIn addTarget:_vMixer atTextureLocation:2];
[_vMixer setPicRect: CGRectMake(0.0, 0.0, 0.5, 0.5) ofLayer:0];
[_vMixer setPicRect: CGRectMake(0.2, 0.2, 0.5, 0.5) ofLayer:1];
[_vMixer setPicRect: CGRectMake(0.5, 0.5, 0.5, 0.5) ofLayer:2];
[_vMixer setPicAlpha:0.5 ofLayer:0];
[_vMixer setPicAlpha:0.8 ofLayer:1];
[_vMixer addTarget:_preview];