Преобразование GPUImage MultipleBlend из OBJ-C в Swift - PullRequest
0 голосов
/ 05 марта 2019

Я в процессе преобразования моего приложения 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

1 Ответ

0 голосов
/ 06 марта 2019

Попробуйте это

        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
        }
...