【问题标题】:How can I save a photo taken with UIImagePickerController camera to be displayed later in the app?如何保存使用 UIImagePickerController 相机拍摄的照片以便稍后在应用程序中显示?
【发布时间】:2015-08-24 14:18:20
【问题描述】:

我让用户使用 UIImagePickerController 拍照,我需要将其保存到应用程序中,以便在他们以后需要查看时显示。我怎样才能做到这一点?

我听说 NSUserDefaults 是一个错误。我只需要保存一张图片即可。

【问题讨论】:

  • 将该图像保存到您的文档文件夹中。当您希望该图像从该文件夹中检索该图像时。
  • 您有执行此操作的代码示例吗?我以前从来没有遇到过这种情况。
  • 我已经发布了代码,希望对你有帮助。

标签: ios iphone xcode swift camera


【解决方案1】:

这是将图像保存到文件夹的功能

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

希望对你有帮助

【讨论】:

  • 我只是想验证使用此页面作为参考的任何人此解决方案是否有效。请记住将上面代码中的占位符替换为您在自己的代码中使用的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多