我正在对拍摄的图像应用许多核心图像滤镜。我面临的问题是,一旦我应用了滤镜并保存了生成的图像,便无法保存它。我的代码没有任何错误,但是当我去检索图像时,应用程序无法找到它。它说该文件不存在。我怀疑我可能会错误地使用过滤器。
table_B.firstname
答案 0 :(得分:1)
问题在于您的imageData
是nil
,因为您是如何创建UIImage
的。
如this answer中所述,您在nil
属性中有一个UIImage.cgImage
,UIImageJPEGRepresentation
使用。这是您需要使用的代码:
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")
}
}