首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Swift 5和CIFilter 13中使用CIFilter sunbeamsGenerator?

如何在Swift 5和CIFilter 13中使用CIFilter sunbeamsGenerator?
EN

Stack Overflow用户
提问于 2020-01-16 11:21:51
回答 1查看 615关注 0票数 1

请问谁能给我提供一个CIFilter sunbeamsGenerator在Swift 5和iOS 13中的示例代码?

我正在尝试创建一个扩展来应用这个过滤器,并且我有以下错误:

*由于未指明的异常'NSUnknownKeyException‘而终止应用程序,原因:’setValue:forUndefinedKey:这个类不符合键inputImage的键值编码。‘

该代码对于模糊筛选器正常工作,但对sunbeamsGenerator没有影响。

代码语言:javascript
复制
import UIKit
import CoreImage.CIFilterBuiltins

public extension UIImage {

public func withBlurFilter() -> UIImage {
       let ciImage = CIImage(image: self)!
       let filter = CIFilter.gaussianBlur()
       filter.inputImage = ciImage
       filter.radius = 30
       let vintage = ciImage.applyingFilter(filter.name)
       return vintage.uiImage()
   }

    public func withSunFilter() -> UIImage {
        let ciImage = CIImage(image: self)!
        let filter = CIFilter.sunbeamsGenerator()
        let sunbeam = ciImage.applyingFilter(filter.name)
        return sunbeam.uiImage()
    }

}

提前谢谢,我是CoreImage的新手

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-16 12:11:10

CISunbeamsGenerator不需要输入图像-它将产生一个太阳光效果(因此名称),例如,您可以使用它来混合到另一个图像上。

当您调用ciImage.applyingFilter(...)时,它将尝试将图像指定为inputImage给给定的过滤器。但是生成器没有这个属性,因此出现了错误。

相反,你可以做这样的事情:

代码语言:javascript
复制
public func withSunFilter() -> UIImage {
    let ciImage = CIImage(image: self)!
    let filter = CIFilter.sunbeamsGenerator()
    let sunbeam = filter.outputImage!
    let output = sunbeam.composited(over: ciImage)
    return output.uiImage
}

检查parameters of CISumbeamsGenerator,看看你能用它做些什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59768604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档