无法将 CIImage 保存到相机胶卷 - Swift 3



我正在尝试将滤镜应用于CIImage,该滤镜是从AVCaptureSession的像素缓冲区创建的,然后将其保存到相机胶卷中。

这是我的代码

        let image = CIImage(cvPixelBuffer: pixelBuffer)
        let filter = CIFilter(name: "CISepiaTone")
        filter?.setValue(image, forKey: kCIInputImageKey)
        filter?.setValue(0.1, forKey: kCIInputIntensityKey)
        let newImage = UIImage(ciImage: (filter?.outputImage)!)
        print ("new image: (newImage)")
        UIImageWriteToSavedPhotosAlbum(newImage, self,    #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)

这不会抛出任何错误,并且当 image(_:didFinishSavingWithError:contextInfo:)被调用它没有错误

但是该图像没有出现在我的库中。非常令人困惑!任何帮助表示赞赏。

谢谢。

我也遇到过同样的情况并解决了这个问题。

我的方法是:先将其转换为CGImage,

然后将CGImage对象转换为UIImage,在这种情况下,是否可以成功将处理后的图像保存到相机胶卷中。

这是代码。

let input = CIImage(image: MyImageView.image!)
let filter = PinkyFilter() // My custom filter
filter.setValue(input, forKey: kCIInputImageKey)
let context = CIContext() // Prepare for create CGImage
let cgimg = context.createCGImage(filter.outputImage, from: filter.outputImage.extent)
let output = UIImage(cgImage: cgimg!)

然后,输出是一个可保存的对象。

相关内容

  • 没有找到相关文章

最新更新