我已经有一个完整的应用程序,可以拍照并将它们放入自定义相册中。我可以为每张专辑命名,我可以完美地检索所有图像。然而,我真正需要的是能够命名单个照片(或使用某种元数据),以便我可以在应用程序内的适当时间显示它们。
我知道如果您将照片存储在应用程序的文档目录中,可以这样做,但我不得不放弃使用该设备的照片库。
有没有人对如何做到这一点有任何想法?
PS。我使用的是Objective-C而不是SWIFT。
答案 0 :(得分:1)
您可以通过两种方式执行此操作:
1-将照片保存在临时目录中。例如:
var fileManager = NSFileManager()
var tmpDir = NSTemporaryDirectory()
let filename = "YourImageName.png"
let path = tmpDir.stringByAppendingPathComponent(filename)
var error: NSError?
let imageData = UIImagePNGRepresentation(YourImageView.image)
fileManager.removeItemAtPath(path, error: nil)
println(NSURL(fileURLWithPath: path))
if(imageData.writeToFile(path,atomically: true)){
println("Image saved.")
}else{
println("Image not saved.")
}
2-使用Photos Framework保存。例如:
if let image: UIImage = YourImageView.image
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0), {
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
let createAssetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
let assetPlaceholder = createAssetRequest.placeholderForCreatedAsset
if let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.assetCollection, assets: self.photosAsset) {
albumChangeRequest.addAssets([assetPlaceholder])
}
}, completionHandler: {(success, error)in
dispatch_async(dispatch_get_main_queue(), {
NSLog("Adding Image to Library -> %@", (success ? "Sucess":"Error!"))
})
})
})
}
您可以查看project sample。