从iPhone相机胶卷获取图像

时间:2013-01-14 22:23:54

标签: iphone camera photo

我目前有一个UIImageView和一个UIImage。如何让用户从相机胶卷中选择一张照片?

possible duplicates,但我没有运气。这可能是因为我没有在Interface Builder中挂钩。

我想要像UIImage * image = [UIImage imageFromCameraRoll]那样简单,但不幸的是,这是不可能的(至少我不这么认为)。

2 个答案:

答案 0 :(得分:3)

试试此代码

帮助您从cameraroll& photolibrary。使用UIImagePickerViewController

如果拍摄照片

  1. 从相机(在UINavigationcontroller中打开)。
  2. 来自Gallery(对于ipad打开为UIpopovercontroller&为iphone打开为nvigationcontroller)。
  3. 首先设置代理

    @interface camera : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate,UIPopoverControllerDelegate>
    

    从相机中获取图片

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
            {
                UIImagePickerController *imagePicker =
                [[UIImagePickerController alloc] init];
                imagePicker.delegate = self;
                imagePicker.sourceType =
                UIImagePickerControllerSourceTypeCamera;
                imagePicker.mediaTypes = [NSArray arrayWithObjects:
                                          (NSString *) kUTTypeImage,
                                          nil];
    
                imagePicker.allowsEditing = YES;
    
                imagePicker.wantsFullScreenLayout = YES;
    
                [self presentViewController:imagePicker animated:YES completion:nil];
                newMedia = YES;
                iscamera = 0;
            }
            else
            {
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error to access Camera"
                                                                message:@""
                                                               delegate:nil
                                                      cancelButtonTitle:@"OK"
                                                      otherButtonTitles:nil];
                [alert show];
    
            }
    

    从图库中获取图片

     if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
        {
            UIImagePickerController *_picker=nil;
            if (popoverController) {
                [popoverController dismissPopoverAnimated:NO];
    
            }
            _picker = [[UIImagePickerController alloc] init];
            _picker.delegate = self;        
            _picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            _picker.wantsFullScreenLayout = YES;
    
            //[popoverController presentPopoverFromBarButtonItem:sender
                                   //   permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    
            if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    
               [self presentViewController:_picker animated:YES completion:nil];
    
    
            } else
            {
                popoverController = [[UIPopoverController alloc] initWithContentViewController:_picker];
                [popoverController setDelegate:self];
                [popoverController presentPopoverFromRect:btn.frame
                                                   inView:self.view
                                 permittedArrowDirections:UIPopoverArrowDirectionLeft
                                                 animated:YES];
            }
        }
        else
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error access photo library"
                                                            message:@"your device non support photo library"
                                                           delegate:nil
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
            [alert show];
    
        }
    

    两种结果都是您参与委托方法

    -(void)imagePickerController:(UIImagePickerController *)picker
    didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
       // write your code here ........
     }
    

答案 1 :(得分:1)

使用UIImagePickerController,请参阅Apple文档。

选择源类型:

@property (nonatomic) UIImagePickerControllerSourceType sourceType

从这些开始:

UIImagePickerControllerSourceTypePhotoLibrary,
UIImagePickerControllerSourceTypeCamera,
UIImagePickerControllerSourceTypeSavedPhotosAlbum