我让用户用UIImagePickerController拍照,我需要将它保存到应用程序中,以便以后需要时可以显示它。我怎么能做到这一点?
我听说NSUserDefaults会出错。我需要保存的只是一张图片,而不是更多。
答案 0 :(得分:14)
以下是将图像保存到文档文件夹的功能
func saveImage (image: UIImage, path: String ) -> Bool{
let pngImageData = UIImagePNGRepresentation(image)
//let jpgImageData = UIImageJPEGRepresentation(image, 1.0) // if you want to save as JPEG
let result = pngImageData.writeToFile(path, atomically: true)
return result
}
以下是获取图像名称
的文档目录路径的功能func fileInDocumentsDirectory(filename: String) -> String {
let documentsFolderPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as! String
return documentsFolderPath.stringByAppendingPathComponent(filename)
}
以下是如何使用图像路径的示例
let imagePath = fileInDocumentsDirectory(myImageName)
以下是将图像保存到该文件夹的方法
saveImage(image, path: imagePath)
现在最后一部分是获取你的图像,所以使用这个功能来获取你的图像
func loadImageFromPath(path: String) -> UIImage? {
let image = UIImage(contentsOfFile: path)
if image == nil {
println("Image not available at: (path)")
}
return image
}
以下是您使用上述功能的方法
image = loadImageFromPath(imagePath)
imageView.image = image
希望这有助于你