Get image name UIImagePickerController in Swift

后端 未结 2 958
别那么骄傲
别那么骄傲 2020-12-15 01:57

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

2条回答
  •  再見小時候
    2020-12-15 02:58

    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.

提交回复
热议问题