将GPUImage MultipleBlend从OBJ-C转换为Swift

问题描述 投票:0回答:1

我正在将我的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

swift gpuimage
1个回答
0
投票

试试这个

        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
        }
© www.soinside.com 2019 - 2024. All rights reserved.