2015-08-14 3 views
0

У меня есть готовое приложение, которое снимает фотографии и помещает их в пользовательские альбомы. Я могу назвать каждый альбом, и я могу полностью восстановить все изображения. Однако мне действительно нужно иметь возможность называть отдельные фотографии (или использовать какие-то метаданные), чтобы я мог показывать их в соответствующее время внутри приложения.Сохранение фотографии с именем или любыми метаданными

Я знаю, что это можно сделать, если вы сохраняете фотографии в каталоге документов приложения, но мне пришлось отойти от этого и пойти с библиотекой фотографий устройства.

У кого-нибудь есть идеи, как это сделать?

PS. Я использую Objective-C, а не SWIFT.

ответ

0

Вы можете сделать это двумя способами:

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.

+0

Привет, спасибо за ваши усилия, но это не ответит на то, что я ищу. Во-первых, и это моя ошибка, я не использую SWIFT. Что касается ваших ответов; для 1. У меня уже было приложение, работающее с каталогами приложений, но, как я сказал, мне пришлось отойти от этого и использовать стандартные альбомы устройств и пользовательские альбомы. В том числе номер 2, но это не позволяет мне называть фотографии еще. – MarioAna

+0

На этой строке исходный код 'func imagePickerController (picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [** NSObject **: AnyObject]) {' ... нужно изменить ** NSObject ** на ** String ** –

Смежные вопросы