1

快速查找 CIVibrance 类或字符串“CIVibrance”或 CIFilter().vibrance() 之类的方法。查看文档,有些文档在 swift 中似乎不可用,但 Xcode 中缺少其他文档。(iOS 13.4 Xcode 11.5)

https://developer.apple.com/documentation/coreimage/cifilter/3228429-vibrance https://developer.apple.com/documentation/coreimage/civibrance?language=occ

import UIKit
import CoreImage

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    func test() {
        let ciFilter = CIFilter()

        let ciVibrance = ciFilter.vibrance() // error
        let ciVibrance2 = CIFilter.vibrance() // error
        let ciVibrance3 = CIVibrance() // error
    }
}
4

1 回答 1

2

您可以按shift+ command+ o(字母“哦”)或选择“文件”»“快速打开...”菜单,然后搜索方法或类名:

在此处输入图像描述

这通常会给你一个关于它可能在哪里的线索。在这种情况下:

import CoreImage.CIFilterBuiltins

例如:

import UIKit
import CoreImage.CIFilterBuiltins

class ViewController: UIViewController {
    @IBOutlet weak var imageView1: UIImageView!
    @IBOutlet weak var imageView2: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        imageView2.image = vibrantImage()
    }

    func vibrantImage() -> UIImage? {
        guard let input = UIImage(named: "flower.jpg")?.cgImage else {
            return nil
        }

        let filter = CIFilter.vibrance()
        filter.amount = 1
        filter.inputImage = CIImage(cgImage: input)
        return filter.outputImage.flatMap { UIImage(ciImage: $0) }
    }
}

产量:

在此处输入图像描述

(左边是原始图像,右边是生动的再现)

于 2020-06-09T19:10:37.157 回答