当CIFiltered UIImage设置时,UIImageVIew崩溃

问题描述 投票:0回答:1

我正试图“过滤”一些图像。但是在放置过滤后的uiimage时UIImageView会崩溃。我从来没有见过这种情况,也不知道如何弄明白的下一步。请帮忙或教一些提示。谢谢。

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

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

ios swift uiimageview uiimage cifilter
1个回答
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,这是不可能的。根据苹果文档:Although a CIImage object has image data associated with it, it is not an image.

有关更多信息,请参阅此链接:https://developer.apple.com/documentation/coreimage/ciimage

© www.soinside.com 2019 - 2024. All rights reserved.