如何在GPUImage中叠加一系列图像

时间:2013-04-07 02:44:48

标签: image overlay sequence blend gpuimage

我一直在研究GPUImage,但在我显示和录制时,无法弄清楚如何在视频顶部覆盖一系列png或jpg图像。我在序列中有大约150张照片,我希望在视频顶部叠加(或实际倍增)。看起来我应该能够在两个图像叠加或乘法滤波器中每1/24秒交换纹理从一帧到下一帧。我不确定这是否会起作用?

在一个相关的问题中,如果我根据两个输入混合滤镜制作自定义滤镜,在实例化滤镜并启动后,是否有任何方法可以从UIImage更改第二纹理相机拍摄?

1 个答案:

答案 0 :(得分:0)

我确实设法让这个工作,虽然不是我原先打算的方式,但它的工作原理也一样。我必须做的是使用GPUImageMovie对象。

所以代码如下:

filter10 = [[GPUImageAddBlendFilter alloc] init];

[filter10 forceProcessingAtSize:_imageView7.sizeInPixels];

NSURL *url = [[NSBundle mainBundle] URLForResource:@"sample_film" withExtension:@"mov"];

_imageMovie = [[GPUImageMovie alloc] initWithURL:url];

_imageMovie.playAtActualSpeed = true;

_imageMovie.delegate = self;

[_imageMovie addTarget:filter10];

[_imageMovie startProcessing];

[filter10 addTarget:_imageView7];

[_videoCamera startCameraCapture];

感谢Brad Larson的GPUImage,我终于能够以足够的性能制作出我想制作的视频应用,而不必依赖于没有我需要的所有东西的CIFilter。我需要为一件事写一些自定义过滤器。