GPUImage混合滤镜

时间:2014-03-22 16:39:55

标签: ios gpuimage ios7.1

我尝试将混合滤镜应用于2张图像 我最近更新了GPUImage到最后一个版本。 为简单起见,我修改了SimpleImageFilter示例 这是代码:

  UIImage * image1 = [UIImage imageNamed:@"PGSImage_0000.jpg"];
    UIImage * image2 = [UIImage imageNamed:@"PGSImage_0001.jpg"];
    twoinputFilter = [[GPUImageColorBurnBlendFilter alloc] init];
    sourcePicture1 = [[GPUImagePicture alloc] initWithImage:image1 ];
    sourcePicture2 = [[GPUImagePicture alloc] initWithImage:image2 ];
    [sourcePicture1 addTarget:twoinputFilter];
    [sourcePicture1 processImage];
    [sourcePicture2 addTarget:twoinputFilter];
    [sourcePicture2 processImage];
    UIImage * image = [twoinputFilter imageFromCurrentFramebuffer];

返回的图片是nil。应用一些断点我可以看到过滤器在方法- (CGImageRef)newCGImageFromCurrentlyProcessedOutput内失败,问题是framebufferForOutput是nil.I' m模拟器。
我不明白为什么它不起作用。

1 个答案:

答案 0 :(得分:4)

似乎我错过了这个命令,正如静止图像处理文档中所写的那样:

  

请注意,要从过滤器手动捕获图像,您需要   设置-useNextFrameForImageCapture以告诉过滤器   你以后需要从中捕获它。默认情况下,GPUImage   在过滤器中重用帧缓冲区以节省内存,因此如果您需要   您可以使用过滤器的帧缓冲来手动捕获图像   需要提前让它知道。

[twoinputFilter useNextFrameForImageCapture];