UIImageVIew сбой при установке CIFiltered UIImage - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь "CIFiltering" некоторые изображения. Но UIImageView вылетает при установке отфильтрованного uiimage. Я никогда не видел такой ситуации и не знаю, как сделать следующий шаг. Пожалуйста, помогите или научите некоторым советам. Спасибо.

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

enter image description here Вот что происходит.

1 Ответ

2 голосов
/ 01 апреля 2019

Пожалуйста, внесите следующие изменения в функцию:

В начале функции добавьте:

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

...