【问题标题】:Change filter intensity like brightness from 0 to 100 via slider control in gpuimage2 swift通过 gpuimage2 swift 中的滑块控件将过滤器强度(如亮度)从 0 更改为 100
【发布时间】:2017-06-07 15:47:34
【问题描述】:

我遵循了从 GPUImage2 示例中更改摄像机上的滤镜强度的示例,我正在尝试使用 iOS 滑块控件更改静态图像上的滤镜强度,但它没有改变强度。

    @IBOutlet weak var renderView: RenderView!
     var filterContrast:ContrastAdjustment!
    @IBOutlet weak var sliderContrast: UISlider!
    let inputImage = UIImage(named:"WID-small.jpg")!
     var picture:PictureInput!

     // setting dynamic observable property.
     dynamic var filterValue = 3.0 {

     didSet {
        filterContrast.contrast = GLfloat(filterValue)
        picture.processImage()
     }
}

关于 viewDidLayoutSubviews

    picture = PictureInput(image: inputImage)
    filterContrast = ContrastAdjustment();

    picture --> filterContrast --> renderView
    filterValue  = 3; // will call did set property and call processimage from it

关于滑块更新

        filterValue = Double(nm);

这种方法有什么问题吗?

谢谢

【问题讨论】:

    标签: ios swift gpuimage


    【解决方案1】:

    每次滑块值发生变化时,您都会创建一个新的对比度调整滤镜实例并将其附加到图片上。您的旧过滤器实例仍然存在,并且 RenderView 将忽略除第一个输入之外的任何输入。事实上,您应该在控制台上看到警告,告诉您您向 RenderView 添加了太多输入。

    不必每次都创建一个全新的对比度调整过滤器,只需将对比度过滤器保存为实例变量,并在滑块更改时调整其contrast 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 2019-01-27
      • 2023-04-01
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多