【问题标题】:MacOS and Swift 3 - how to pass result from one filter to anotherMacOS 和 Swift 3 - 如何将结果从一个过滤器传递到另一个过滤器
【发布时间】:2016-10-09 18:12:52
【问题描述】:

来自this thread 的扩展问题。我不确定如何将CIAffineClamp 的结果作为CIGaussianBlur 的源传递。以下代码构建得很好,但不会产生结果图像。

guard
    let blurFilter = CIFilter(name: "CIGaussianBlur"),
    let clampFilter = CIFilter(name: "CIAffineClamp"),
    let imageURL = Bundle.main.url(forResource: "my-image", withExtension: "png"),
    let ciImage = CIImage(contentsOf: imageURL)
else {
    return
}

let transform = AffineTransform.identity

clampFilter.setValue(ciImage, forKey: "inputImage")
clampFilter.setValue(NSAffineTransform(transform: transform), forKey: "inputTransform")

blurFilter.setValue(clampFilter.outputImage, forKey: kCIInputImageKey)
blurFilter.setValue(10, forKey: kCIInputRadiusKey)

guard
    let result = blurFilter.outputImage,
    let cgImage = context.createCGImage(result, from: result.extent)
else {
    // this guard fails in here
    return
}

【问题讨论】:

    标签: macos swift3 nsimage


    【解决方案1】:

    这似乎是同样的问题:

    CIGaussianBlur and CIAffineClamp on iOS 6

    请试试这个:

        let cgImage = context.createCGImage(result, from: ciImage.extent)
    

    【讨论】:

    • 工作就像一个魅力。非常感谢您的帮助。您介意分享您的联系方式(电子邮件/gplus/skype),以便我可以询问您有关此代码的一些问题吗?
    • 抱歉,我不通过公共网站进行任何私人联系。我会尝试解决您未来的问题,或者您将来会帮助我。祝你和你的应用好运。
    猜你喜欢
    • 2019-07-10
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多