如何使用 Swift 语法在 GPUImage2 中将两个图像混合在一起
How do I blend two images together in GPUImage2 using Swift syntax
我熟悉以下语法,可以在 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 滤镜之后吗?
通过分析链并使用操作中所需的输入数量,发现我发布的上述示例有效。所以 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)
我熟悉以下语法,可以在 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 滤镜之后吗?
通过分析链并使用操作中所需的输入数量,发现我发布的上述示例有效。所以 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)