如何从照片库加载照片并将其存储到应用程序项目中?

我正在开发一个与我在这里find的示例代码几乎相同的应用程序。 但是我想要做的方法与示例代码不同。
链接: PhotoLocations

第一个屏幕将有一个ImageView和2个button(select照片,确认)。 当点击“select照片”button时,它将导航到另一个屏幕,从iPad的照片库中检索照片。 当select照片时,它将closures当前屏幕并返回到在ImageView上显示所选照片的​​第一个屏幕。

点击“确认”button后,照片将被存储到我的应用程序的项目中(例如/resources/images/photo.jpg)。

我可以知道我该怎么做?

这将带你到图片库,你可以select图像。

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init]; imagePickerController.delegate = self; imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:imagePickerController animated:YES completion:nil]; 

这将帮助您select图像

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { // Dismiss the image selection, hide the picker and //show the image view with the picked image [picker dismissViewControllerAnimated:YES completion:nil]; //UIImage *newImage = image; } 

然后你可以将这个图像存储到文档目录中…

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"]; UIImage *image = imageView.image; // imageView is my image from camera NSData *imageData = UIImagePNGRepresentation(image); [imageData writeToFile:savedImagePath atomically:NO]; 

点击图片自己使用这个

 - (IBAction) takePhoto:(id) sender { UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentModalViewController:imagePickerController animated:YES]; } 
 UIImagePickerController *cardPicker = [[UIImagePickerController alloc]init]; cardPicker.allowsEditing=YES; cardPicker.delegate=self; cardPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; [self presentModalViewController:appDelegate.cardPicker animated:YES]; [cardPicker release]; 

这个委托方法将返回从相册中select的图像

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo { [[picker parentViewController] dismissModalViewControllerAnimated:YES]; noImage.image=img; } 
 - (IBAction)UploadPhoto:(id)sender { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Please Select Your Option"delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Camera", @"Gallery",nil]; [actionSheet showInView:self.view]; UITableViewCell *clickedCell = (UITableViewCell *)[[sender superview] superview]; NSIndexPath *clickedButtonPath = [jobstable indexPathForCell:clickedCell]; isSectionIndex = clickedButtonPath.section; isRowIndex = clickedButtonPath.row; } -(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{ NSLog(@"From didDismissWithButtonIndex - Selected Option: %@", [actionSheet buttonTitleAtIndex:buttonIndex]); NSString*image=[actionSheet buttonTitleAtIndex:buttonIndex]; if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:@"Camera"]) { if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIAlertView* alert = [[UIAlertView alloc] initWithTitle:nil message:@"Device Camera Is Not Working" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert show]; return; } else{ UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.allowsEditing = YES; picker.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentViewController:picker animated:YES completion:NULL]; } } else if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:@"Gallery"]){ UIImagePickerController *pickerView = [[UIImagePickerController alloc] init]; pickerView.allowsEditing = YES; pickerView.delegate = self; [pickerView setSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum]; [self presentViewController:pickerView animated:YES completion:nil]; } } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ UIImage* orginalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; NSIndexPath *indexPath = [NSIndexPath indexPathForRow:isRowIndex inSection:isSectionIndex]; UITableViewCell *cell = [jobstable cellForRowAtIndexPath:indexPath]; UIImageView *tableIMAGE=(UIImageView *)[cell.contentView viewWithTag:19]; tableIMAGE.image=orginalImage; answersARRAY[indexPath.row] = [NSString stringWithFormat:@"-1,%@,%@,",answersARRAY[indexPath.row],imageStris]; [self dismissViewControllerAnimated:YES completion:nil]; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [picker dismissViewControllerAnimated:YES completion:NULL]; }