我有一个奇怪的问题,从我的照片库中裁剪照片后,它无法从应用程序显示。运行此代码后,它给了我这个错误:
这是我用来裁剪和显示的代码。 (输入图像是 CIImage)
更多信息:调试打印输入图像和更正图像的范围
有趣的是,当我使用 Xcode 设置断点时,我能够正确预览裁剪后的图像。我不确定 CIImage 的这个范围是什么,但是当我将裁剪的图像分配给它时 UIMageView 不喜欢它。知道这个范围是做什么的吗?
最佳答案
我遇到了你描述的同样问题。由于 UIKit/CoreImage 中的一些奇怪行为,我需要先将 CIImage
转换为 CGImage
。我注意到只有当我对 CIImage
应用一些过滤器时才会发生这种情况,如下所述。
let image = /* my CIImage */
let goodImage = UIImage(ciImage: image)
uiImageView.image = goodImage // works great!
let image = /* my CIImage after applying 5-10 filters */
let badImage = UIImage(ciImage: image)
uiImageView.image = badImage // empty view!
我就是这样解决的。
let ciContext = CIContext()
let cgImage = self.ciContext.createCGImage(image, from: image.extent)
uiImageView.image = UIImage(cgImage: cgImage) // works great!!!
正如其他评论者所说,要小心创建
CIContext
过于频繁;这是一项昂贵的操作。关于ios - 奇怪的 CoreImage 裁剪问题在这里遇到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46497340/