如何使用Swift语法在GPUImage2中将两个图像混合在一起

时间:2016-08-26 02:07:24

标签: ios swift image-processing gpuimage

我熟悉以下语法在GPUImage2中使用Swift语法中的这种方式进行单个图像过滤:

input --> blur --> output

但是如何使用需要两个图像的图像处理操作? GPUImage2中的一个示例显示您可以执行此操作:

input --> self.lookup1 --> self.alphaBlend --> self.lookup2 --> output
          self.lookup1 --> self.gaussianBlur --> self.alphaBlend

其中self.lookup1和self.lookup2是2个不同的图像。但我不确定这种语法,在这种情况下,第二个图像是否应该在alphaBlend过滤器之后?

1 个答案:

答案 0 :(得分:8)

通过分析链并使用操作中所需的输入数量,发现上面的示例我发布了工作。所以alphaBlend将等待应用另一个输入,这是一个工作示例:

      let alphaBlend = AlphaBlend()

      let input1 = PictureInput(image: image1)
      let input2 = PictureInput(image: image2)
      alphaBlend.mix = 0.5;

      let output = PictureOutput();
      output.encodedImageFormat = .JPEG

      output.imageAvailableCallback = {image in
        // Do something with the image
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
      }

      input1 -->  alphaBlend
      input2 --> alphaBlend --> output

      input1.processImage(synchronously: true)
      input2.processImage(synchronously: true)