【问题标题】:Converting GPUImage MultipleBlend From OBJ-C To Swift将 GPUImage MultipleBlend 从 OBJ-C 转换为 Swift
【发布时间】:2019-03-05 18:36:40
【问题描述】:

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

    试试这个

            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
            }
    

    【讨论】:

    • 试过了,还是不行,需要对图片输入应用不透明度滤镜。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多