如何从UIImagePicker中保存UIImage在Documents文件夹中,并获取路径以保存在Swift中的Core Data中的路径

时间:2015-03-05 02:56:00

标签: ios swift core-data uiimage

我正在构建我的第一个Swift应用程序。其中,用户需要能够从iPhone的照片库中选择图像。然后我想保存此图像以永久保留在应用程序的其他部分。

我知道可以将UIImage转换为NSData并将其保存为Core Data中的二进制数据,但我已经读过存储二进制大对象(例如图像)的坏主意直接在核心数据中。

我看到它建议您将图像文件保存在Documents文件夹中,然后只保存Core Data中文件路径的字符串。但我还没有看到这样做的代码片段的实际示例。

要完成的步骤:

  1. 从图片选择器中获取UIImage。 (这部分我已经开始工作了)
  2. 将图像数据保存在文档文件夹
  3. 获取Documents文件夹
  4. 的文件路径的字符串值
  5. 将此字符串保存在Core Data
  6. 在应用程序的其他位置执行相反的步骤2-4以使用存储的 图像。
  7. 以下是我开始使用的UIImagePicker的代码:

    @IBAction func openImagePicker(sender: AnyObject) {
        if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary){
            imagePicker.delegate = self
            imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
            imagePicker.allowsEditing = false
            self.presentViewController(imagePicker, animated: true, completion: nil)
        }
    }
    
    func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!)
    {
    self.dismissViewControllerAnimated(true, completion: nil)
    myImageView.image = image
    }
    

    因此UIImage。图片中显示的myImageView是我需要做的事情。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码保存图像

    let imageData = NSData(data:UIImagePNGRepresentation(wineImage.image))
    let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
    var docs: String = paths[0] as! String
    let fullPath = docs.stringByAppendingPathComponent("yourNameImg.png")
    let result = imageData.writeToFile(responseData, atomically: true)

在fullPath中,您将找到完整的路径,图片将存储在app的文档目录中。