在iOS中使用核心图片过滤器-无法保存生成的图片-Swift

时间:2018-09-02 15:32:48

标签: ios swift core-image

我正在对拍摄的图像应用许多核心图像滤镜。我面临的问题是,一旦我应用了滤镜并保存了生成的图像,便无法保存它。我的代码没有任何错误,但是当我去检索图像时,应用程序无法找到它。它说该文件不存在。我怀疑我可能会错误地使用过滤器。

table_B.firstname

1 个答案:

答案 0 :(得分:1)

问题在于您的imageDatanil,因为您是如何创建UIImage的。

this answer中所述,您在nil属性中有一个UIImage.cgImageUIImageJPEGRepresentation使用。这是您需要使用的代码:

func saveImageToLocalFile(image: UIImage) -> Void {
    let imageURL = createPhotoURL()
    var uiImage = image
    if image.cgImage == nil {
        guard let ciImage = image.ciImage, let cgImage = CIContext(options: nil).createCGImage(ciImage, from: ciImage.extent) else { return }
        uiImage = UIImage(cgImage: cgImage)
    }
    if let imageData = UIImageJPEGRepresentation(uiImage, 1.0) {
        do {
            try imageData?.write(to: imageURL)
            self.scannedImageURL = imageURL
        } catch {
            print("error writing img to local dir")
        }
    } else {
            print("could not create JPEG image")
    }
}