如何将相机/照片库中的图像保存到要在 UICollectionView 中显示的数组中
Posted
技术标签:
【中文标题】如何将相机/照片库中的图像保存到要在 UICollectionView 中显示的数组中【英文标题】:How to save image from camera/photo library into an array that is to be displayed in a UICollectionView 【发布时间】:2016-08-20 01:00:26 【问题描述】:我意识到这个问题可能有点宽泛,但基本上我想要做的就是使用图像选择器通过使用相机或在照片库中选择照片,并将该照片保存到数组中。我已经知道如何使用资产文件夹中的图像填充集合视图。只是真的如何将用户图像保存到数组中。如何命名每张图片?
此外,如果数组可以是一个全局数组,则更好,这样可以在其他地方访问这些图像。
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:为什么不简单使用:
var myImages = [UIImage]()
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
if let yourPickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
myImages.append(yourPickedImage)
dismissViewControllerAnimated(true, completion: nil)
编辑:
将图像保存到磁盘:
func saveImage (image: UIImage, path: String ) -> Bool
let jpgImageData = UIImageJPEGRepresentation(image, 1.0)
let result = jpgImageData!.writeToFile(path, atomically: true)
return result
func getDocumentsURL() -> NSURL
let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
return documentsURL
func fileInDocumentsDirectory(filename: String) -> String
let fileURL = getDocumentsURL().URLByAppendingPathComponent(filename)
return fileURL.path!
如何储存
let imagePath = fileInDocumentsDirectory(myImageName)
saveImage(yourPickedImage, path: imagePath)
阅读
func loadImageFromPath(path: String) -> UIImage?
let image = UIImage(contentsOfFile: path)
return image
【讨论】:
真的这么简单哈哈?我不需要使用某种形式的保存数据吗?就像把它写到文件中一样? 没有。如果您只需要将它放入一个数组中(而不是持久化!),那么您只需要它。 我需要保存它,这样当用户回来时,他们的照片就会在那里 所以你应该将图像存储在你的文件系统中,然后将所有的 imagePaths 存储到 NSUserDefaults() 或 CoreData 中。 我该如何进行这个过程?以上是关于如何将相机/照片库中的图像保存到要在 UICollectionView 中显示的数组中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用具有离子和角度的照片相机在firebase中同时保存多个图像