您的位置:首页 > 产品设计 > UI/UE

iOS GPUImage研究六:为视频添加图片水印

2017-05-01 14:43 447 查看
前言:

我们在前面已经做了关于、GPUImage导入方式、滤镜介绍、性能对比、图片处理、捕获照片处理、实时滤镜以及一个比较完整地Demo。


今天:

我们来给摄像头添加一个实时视频水印,很简单,大概有60行代码。


关于如何导入GPUImage,请看这里:

http://blog.csdn.net/xoxo_x/article/details/60323297

效果图:

使用一张美女图片作为图片水印,然后获取摄像头数据。将二者组合,可以看到颜色的叠加,但又似乎不是简单地叠加。




代码概览如下:



原理如下:

GPUImagePicture、GPUImageVideoCamera均可作为纹理来源,我们将两个纹理来源交给混合滤镜,混合滤镜将两种纹理按相乘颜色照矩阵的方式组合成新的纹理。


GPUImageView可作为输出源,将纹理展现给我们。

首先我们需要了解GPUImage提供的滤镜:

http://blog.csdn.net/xoxo_x/article/details/57082804

视频水印用到的是混合滤镜

1、Color adjustments: 31 filters, 颜色处理相关
2、Image processing: 40 filters, 图像处理相关.
3、Blending modes: 29 filters, 混合模式相关.
4、Visual effects: 25 filters, 视觉效果相关.


原理图:



那么,换一种情况:为已经现有视频A添加图片水印

使用的是GPUImageMovie作为输入源,来代替GPUImageVideoCamera,其余不变。


那么,换一种情况:使用现有视频A作为实时视频水印

GPUImageVideoCamera不变,通过改变纹理来源,即通过使用GPUImageVideoFile来获取视频水印,作为纹理,代替使用GPUImagePicture。这样,我们就可以制作关于视频的视频水印了。


那么,换一种情况:使用现有视频A 作为 现有视频B 的 水印

二者均使用的是GPUImageMovie作为输入源


那么,换一种情况:使用现有图片A 作为 现有图片B 的 水印

二者均使用的是GPUImagePicture作为输入源
不过,这个似乎有些奇怪,实验结果,就是两张照片融合到了一起,有点像换场动画。


欢迎打赏 – 打赏后可加好友哦 O(∩_∩)O哈哈~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: