массив изображений в каталоге документов

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

- (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info
{
if ([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]){
    [self dismissViewControllerAnimated:YES completion:nil];
} else {
    [self dismissModalViewControllerAnimated:YES];
}

for (UIView *v in [_scrollView subviews]) {
    [v removeFromSuperview];
}

CGRect workingFrame = _scrollView.frame;
workingFrame.origin.x = 0;

NSMutableArray *images = [NSMutableArray arrayWithCapacity:[info count]];


for(NSDictionary *dict in info) {

    UIImage *image = [dict objectForKey:UIImagePickerControllerOriginalImage];
    [images addObject:image];

    UIImageView *imageview = [[UIImageView alloc] initWithImage:image];
    [imageview setContentMode:UIViewContentModeScaleAspectFit];
    imageview.frame = workingFrame;

    [_scrollView addSubview:imageview];
    [imageview release];

    workingFrame.origin.x = workingFrame.origin.x + workingFrame.size.width;
}

self.chosenImages = images;
NSLog(@"values=%@",_chosenImages);

[_scrollView setPagingEnabled:YES];
[_scrollView setContentSize:CGSizeMake(workingFrame.origin.x, workingFrame.size.height)];
}

person Nasir    schedule 17.07.2013    source источник
comment
Как вы пытались их сохранить и что не сработало?   -  person Wain    schedule 17.07.2013
comment
сэр, я понятия не имею, как сохранять массив за раз, я просто добавляю по одному изображению за раз   -  person Nasir    schedule 17.07.2013
comment
Предположительно, вы хотите сохранить каждое изображение как отдельный файл в указанной папке?   -  person Wain    schedule 17.07.2013
comment
да конечно вы понимаете мою проблему...   -  person Nasir    schedule 17.07.2013


Ответы (1)


  1. Для каждого из изображений в массиве images запишите в файл файл один за другим.

    NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    
    NSInteger anIndex = 0;
    for (UIImage *anImage in images) {
       NSString *anImageName = [NSString stringWithFormat:@"%d.png", anIndex++];
       NSString *anImagePath = [NSString stringWithFormat:@"%@/%@", aDocumentsDirectory, anImageName];
    
       NSData *anImageData = UIImagePNGRepresentation(anImage);
      [anImageData writeToFile:anImagePath atomically:YES];
    }
    

2. Когда вы извлекаете исходное изображение, сразу же сохраняйте изображение в файл.

    NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSInteger anIndex = 0;

    for(NSDictionary *dict in info) {
       UIImage *image = [dict objectForKey:UIImagePickerControllerOriginalImage];
       [images addObject:image];

       UIImageView *imageview = [[UIImageView alloc] initWithImage:image];
       [imageview setContentMode:UIViewContentModeScaleAspectFit];
       imageview.frame = workingFrame;

       [_scrollView addSubview:imageview];
       [imageview release];

       workingFrame.origin.x = workingFrame.origin.x + workingFrame.size.width;

       // Save Image
       NSString *anImageName = [NSString stringWithFormat:@"%d.png", anIndex++];
       NSString *anImagePath = [NSString stringWithFormat:@"%@/%@", aDocumentsDirectory, anImageName];

       NSData *anImageData = UIImagePNGRepresentation(image);
       [anImageData writeToFile:anImagePath atomically:YES];
}
person Roshit    schedule 17.07.2013