设置 CIFiltered UIImage 时 UIImageVIew 崩溃
UIImageVIew crash when CIFiltered UIImage setted
我正在尝试 "CIFiltering" 一些图片。
但是 UIImageView 在放置过滤后的 uiimage 时崩溃。
我从未见过这种情况,也不知道下一步该怎么做。
请帮助或教一些技巧。谢谢。
https://developer.apple.com/documentation/coreimage/simulating_scratchy_analog_film
事情是这样的。
请在函数中做以下修改:
在函数的开头添加:
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!)
原因:
You are creating an CIImage and trying to attach it to UIImageView which is not possible. According to apple docs : Although a CIImage object has image data associated with it, it is not an image.
请参阅此 link 了解更多信息:https://developer.apple.com/documentation/coreimage/ciimage
我正在尝试 "CIFiltering" 一些图片。 但是 UIImageView 在放置过滤后的 uiimage 时崩溃。 我从未见过这种情况,也不知道下一步该怎么做。 请帮助或教一些技巧。谢谢。
https://developer.apple.com/documentation/coreimage/simulating_scratchy_analog_film
请在函数中做以下修改:
在函数的开头添加:
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!)
原因:
You are creating an CIImage and trying to attach it to UIImageView which is not possible. According to apple docs :
Although a CIImage object has image data associated with it, it is not an image.
请参阅此 link 了解更多信息:https://developer.apple.com/documentation/coreimage/ciimage