苹果ARKit示例代码

3
我刚刚下载了ARKitExample项目(放置物体)。不幸的是,有些bug。我对Swift还很陌生,所以不知道如何修复它们。有人可以帮助我吗? 我一直收到错误(文件:Utility.swift):
Nil与预期参数类型'[String:Any]'不兼容
代码:
extension UIImage {
    func inverted() -> UIImage? {
        guard let ciImage = CIImage(image: self) else {
            return nil
        }
        return UIImage(ciImage: ciImage.applyingFilter("CIColorInvert", withInputParameters: nil))
    }

问题在于返回的UIImage。最后一个参数:“withInputParameters:nil”是问题所在。

1个回答

10

似乎自iOS 11起,CIImage applyingFilter(_:withInputParameters:)方法的签名已更改。

它以前的签名为:

func applyingFilter(_ filterName: String, withInputParameters params: [String : Any]?) -> CIImage

现在(截至iOS 11)为止:

func applyingFilter(_ filterName: String, parameters params: [String : Any]) -> CIImage

由于您正在使用ARKit,因此您必须使用iOS 11,因此您需要将代码更改为:

extension UIImage {
    func inverted() -> UIImage? {
        guard let ciImage = CIImage(image: self) else {
            return nil
        }
        return UIImage(ciImage: ciImage.applyingFilter("CIColorInvert", parameters: [:]))
    }
}

非常感谢。问题已经解决了。 - CoderOfTheForce
对我来说它没有起作用,我改变了代码为: func inverted() -> UIImage? { guard let ciImage = CIImage(image: self) else { return nil } let inverted = ciImage.applyingFilter("CIColorInvert", withInputParameters: [:]) return UIImage(cgImage: CIContext(options: nil).createCGImage(inverted, from: inverted.extent)!) } - Nadi Hassan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接