I use UIImagePickerController to get image from phone library (iOS). After edit mode i put image to my UIImageView. I want to save this image in Core Data to use it in anoth
Another good option is you can save your Image into Document Directory of your app and you can retrieve that image from anywhere like shown in below code:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
self.dismissViewControllerAnimated(true, completion: nil)
let tempImage = info[UIImagePickerControllerOriginalImage] as! UIImage
// save your image here into Document Directory
saveImage(tempImage, path: fileInDocumentsDirectory("tempImage"))
}
Here is the helper functions:
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
}
// Get the documents Directory
func documentsDirectory() -> String {
let documentsFolderPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as! String
return documentsFolderPath
}
// Get path for a file in the directory
func fileInDocumentsDirectory(filename: String) -> String {
return documentsDirectory().stringByAppendingPathComponent(filename)
}
And this way you can retrieve that image from Document Directory:
@IBAction func setImage(sender: AnyObject) {
imageV.image = loadImageFromPath(fileInDocumentsDirectory("tempImage"))
}
And here is the helper function:
func loadImageFromPath(path: String) -> UIImage? {
let image = UIImage(contentsOfFile: path)
if image == nil {
println("missing image at: (path)")
}
println("\(path)") // this is just for you to see the path in case you want to go to the directory, using Finder.
return image
}
Hope It will help you.