在Swift中获取图像名称UIImagePickerController

我使用UIImagePickerController从手机库(iOS)中获取图像。 编辑模式后,我把图像到我的UIImageView。 我想将这个图像保存在Core Data中以在另一个View Controller中使用它

我怎么能在Swift中做到这一点。 如果这是不可能的,我必须保存图像有什么select?

另一个很好的select是你可以将你的图像保存到你的应用程序的文档目录中,你可以从下面的代码中的任何地方检索该图像:

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")) } 

这里是帮手function:

 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) } 

这样,您可以从文档目录中检索该图像:

 @IBAction func setImage(sender: AnyObject) { imageV.image = loadImageFromPath(fileInDocumentsDirectory("tempImage")) } 

这里是辅助函数:

 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 } 

希望它会帮助你。

您可以使用二进制数据属性types将图像存储在核心数据中。 然后将您的图像从拾取器更改为NSData。

然后像其他任何东西一样保存。

但是,你应该知道一些事情:

总是将您的UIImage转换为NSData格式

如果遇到性能问题,请尝试将“二进制数据”属性移至单独的实体。

你应该在NSManagedObject子类的接口后面抽象转换到NSData,所以你不必担心从UIImage到NSData的转换,反之亦然。

如果你的图像与模型中的实体没有强相关,我build议将它们存储在核心数据之外。

例如:

 func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!){ self.dismissViewControllerAnimated(true, completion: nil) newImageData = UIImageJPEGRepresentation(image, 1) } myImageFromData = UIImage(data: newImageData)