Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拾取图像后,如何在ios中本地保存图像_Ios_Objective C_Ios7_Ios5_Ios7.1 - Fatal编程技术网

拾取图像后,如何在ios中本地保存图像

拾取图像后,如何在ios中本地保存图像,ios,objective-c,ios7,ios5,ios7.1,Ios,Objective C,Ios7,Ios5,Ios7.1,当我捕获图像时,我需要在表视图中逐个保存图像,如下图所示。需要使用nsuser默认值还是使用核心数据? 在选择图像如何添加到阵列后,您可以将图像保存在NSUserDefaults中,如下所示: -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *chosenImage = info[UIIma

当我捕获图像时,我需要在表视图中逐个保存图像,如下图所示。需要使用nsuser默认值还是使用核心数据?
在选择图像如何添加到阵列后,您可以将图像保存在NSUserDefaults中,如下所示:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
    if(!self.phto_arr_)
   {
     self.phto_arr_ = [[NSMutableArray alloc] init];
   }
[self.phto_arr_ addObject: chosenImage];
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:self.phto_arr_];
[[NSUserDefaults standardUserDefaults] setObject: encodedObject forKey:@"images"];
[[NSUserDefaults standardUserDefaults] synchronize];
[picker dismissViewControllerAnimated:YES completion:NULL];
}

是的,您可以将图像保存在文档目录中,并将图像文件名保存在一个数组中,然后从文档中检索图像。迪尔。就这样

// For error information
    NSError *error;
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"/YOUR_IMG_FOLDER"];

    if (![fileMgr fileExistsAtPath:dataPath])
        [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder

    //Get the current date and time and set as image name
    NSDate *now = [NSDate date];

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"yyyy-MM-dd_HH-mm-ss";
    [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
    NSString *gmtTime = [dateFormatter stringFromDate:now];
    NSLog(@"The Current Time is :%@", gmtTime);

    NSData *imageData = UIImageJPEGRepresentation(_postImage, 0.5); // _postImage is your image file and you can use JPEG representation or PNG as your wish
    int imgSize = imageData.length;
    ////NSLog(@"SIZE OF IMAGE: %.2f Kb", (float)imgSize/1024);

    NSString *imgfileName = [NSString stringWithFormat:@"%@%@", gmtTime, @".jpg"];
    // File we want to create in the documents directory
     NSString *imgfilePath= [dataPath stringByAppendingPathComponent:imgfileName];
    // Write the file
    [imageData writeToFile:imgfilePath atomically:YES];

     **// Keep your Image file name into an mutable array here OR you can saved the array in a UserDefaults**
然后从文档中检索。迪尔。从中迭代数组

//Get image file from sand box using file name and file path
NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"YOUR_IMG_FOLDER"];
stringPath  = [stringPath stringByAppendingPathComponent:imgFile]; // imgFile to get from your array, where you saved those image file names  
UIImage *image = [UIImage imageWithContentsOfFile:stringPath];
谢谢您…快乐编码。

请尝试以下代码: 假设您想使用此代码显示图像名称

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
  chosenImage = info[UIImagePickerControllerOriginalImage];
  chosenImage = [UIImage unrotateImage:chosenImage];    
  addGalleryImageview.image = chosenImage;
  isCameraOn = YES;    
  NSString* fileName = [NSString stringWithFormat:@"gallery%@",[Utils getDateString]];
  imageNamelbl.text = fileName;  
  [picker dismissViewControllerAnimated:YES completion:NULL];}


- (UIImage*)unrotateImage:(UIImage*)image{
   CGSize size = image.size;
   UIGraphicsBeginImageContext(size);
   [image drawInRect:CGRectMake(0,0,size.width ,size.height)];
   UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();   
   return newImage;}

只需将图像以唯一名称保存在目录中,将该唯一名称存储到数组中,然后从目录中检索图像,并显示在tableview中。如果你想得到答案,我会发布它。如果你想在默认的照片库中保存图像,那么使用。。请您解释一下,如何将图像逐个添加到数组中,如何在TableView中显示从摄像机捕获图像在拍摄图像后保存到文档中。目录并将文件名保存在数据库中。然后从数据库中检索所有用于表集的文件名。在cellForRowAtIndexPath中获取文件名并从文档中检索。dir.,设置到图像视图中