我正在将我的GPUImage应用程序转换为Swift,但我在转换以下内容时遇到了一些问题。
GPUImagePicture *lookupImageSource = [[GPUImagePicture alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Elevate.png" ofType:nil]]];
[lookupImageSource forceProcessingAtSize:sourceImage.size];
GPUImageMultiplyBlendFilter * blendFilter = [[GPUImageMultiplyBlendFilter alloc] init];
GPUImageOpacityFilter *opacityFilter = [[GPUImageOpacityFilter alloc] init];
opacityFilter.opacity = sliderValue;
[lookupImageSource addTarget:opacityFilter];
[stillImageSource addTarget:blendFilter];
[opacityFilter addTarget:blendFilter];
[blendFilter useNextFrameForImageCapture];
[stillImageSource processImage];
[lookupImageSource processImage];
finishedImage = [blendFilter imageFromCurrentFramebufferWithOrientation:sourceImage.imageOrientation];
在我转换为以下内容的那一刻,但是在运行代码时遇到错误。
let filterOpacity = OpacityAdjustment()
filterOpacity.opacity = 1
let filterImage = PictureInput.init(image: UIImage.init(named: "Elevate.png")!)
filterImage.addTarget(filterOpacity)
let filterMultiplyBlend = MultiplyBlend()
filterMultiplyBlend.addTarget(filterOpacity)
imageOutput = sourceImage!.filterWithPipeline{input, output in
input --> filterMultiplyBlend --> output
}
我收到此错误作为输出。
警告:尝试添加超出目标输入容量的目标 - > Pipeline.swift:addTarget(_:atTargetIndex :):43
试试这个
let filterOpacity = OpacityAdjustment()
filterOpacity.opacity = 1
let filterImage = PictureInput.init(image: UIImage.init(named: "Elevate.png")!)
let filterMultiplyBlend = MultiplyBlend()
imageOutput = sourceImage!.filterWithPipeline{input, output in
input --> filterOpacity --> filterMultiplyBlend --> output
}