设置CIFiltered UIImage时UIImageVIew崩溃

时间:2019-04-01 10:14:35

标签: ios swift uiimageview uiimage cifilter

我正在尝试“ CIFiltering”一些图像。 但是当放置过滤的uiimage时,UIImageView崩溃。 我从未见过这种情况,也不知道下一步如何解决。 请帮助或教一些提示。谢谢。

https://developer.apple.com/documentation/coreimage/simulating_scratchy_analog_film

enter image description here 这就是发生的情况。

1 个答案:

答案 0 :(得分:2)

请在功能中进行以下更改:

在函数开始处添加:

public func filter(_image) {
    let aUIImage     = _image

    guard let aCGImage = aUIImage.cgImage else { return }
    let aCIImage       = CIImage(cgImage: aCGImage)
    let context        = CIContext(options: nil)

,并将let image = UIImage(ciImage: speckledImage)行替换为:

let imageRef = context.createCGImage(speckledImage, from: aCIImage.extent)
let image    = UIImage(cgImage: imageRef!)

原因:

  

您正在创建CIImage并尝试将其附加到UIImageView。根据Apple文档:Although a CIImage object has image data associated with it, it is not an image.

请参阅此链接以获取更多信息:https://developer.apple.com/documentation/coreimage/ciimage