2012-02-23 2 views
0

Я сейчас борюсь с UIImagePicker.Как сохранить фотографию нового токена в IOS

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

В самом деле, есть «фото» атрибут в одном из моей сущности в основных данных,

так, то «фото» должны быть просто NSString, чтобы сохранить путь к файлу в реальном фото, верно?

Но как сохранить эту фотографию и получить ее правильный путь к файлу?

Я просто мало знаю о NSFilePath или что-то в этом роде, надеюсь, что кто-нибудь научит меня немного.

Большое спасибо!

ответ

0

Вы знаете, как представить палитру изображения:

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
[viewController presentModalViewController:picker animated:YES]; 

С выше ViewController реализует UIImagePickerControllerDelegate и убедитесь, что вы реализуете эту функцию:

- (void)imagePickerController:(UIImagePickerController *)returnedPicker didFinishPickingMediaWithInfo:(NSDictionary *)info 

и

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)returnedPicker 

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

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 

Чтобы написать это в файл, вы можете сделать это JPEG или PNG. Если в формате JPEG вы можете сделать это:

[UIImageJPEGRepresentation(image, 1.0) writeToFile:filename atomically:YES]; 

Вам просто нужно указать имя файла.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docsDir = [paths objectAtIndex:0]; 
NSString *filename = [docsDir stringByAppendingPathComponent:@"myFilename.jpg"]; 

Чтобы получить изображение обратно в UIImage вы это делаете:

NSData *data = [NSData dataWithContentsOfFile:filename; 
if(data != nil) 
    UIImage *image = [UIImage imageWithData:data]; 
+0

Спасибо большое! Это очень специфично, поэтому имя файла - всего лишь NSString? И когда мне нужно вернуть фотографию, я также использую имя файла как NSString вместо того, чтобы рассматривать путь к файлу фотографии как/document/resource/или что-то в этом роде? –

+0

Добавил пару строк, чтобы объяснить это - да, это просто NSString в этом случае, но вам нужно префикс каталога документов. – Tonester

+0

Еще раз спасибо! Это очень помогло мне! –