-1

I reach a camera class in ios. The ADMSImageUploader.h is as follows

#import <UIKit/UIKit.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import <AssetsLibrary/AssetsLibrary.h>

@interface ADMSImageUploader : UIViewController <UIImagePickerControllerDelegate,UINavigationControllerDelegate>

@property BOOL newMedia;
@property (weak, nonatomic) IBOutlet UIImageView *previewImage;

- (IBAction)returnButtonClicked:(id)sender;
- (IBAction)retakeButtonClicked:(id)sender;
- (IBAction)uploadButtonClicked:(id)sender;


-(void)openCamera:(NSString *)dealerId : (NSString *)inventoryId;

@end

the code in the .m file is as follows. there is a function below which opens the camera

-(void)useCamera{
     if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.mediaTypes = @[(NSString *) kUTTypeImage];
    imagePicker.allowsEditing = NO;
    [self presentViewController:imagePicker animated:YES completion:nil];
    _newMedia = YES;
}

}

here is the image of the camera

camera image

i would like to prevent the screen below from appearing and display the captured image in to image view

prevent this screen from appearing

thank you for the help.

jrturton
  • 118,105
  • 32
  • 252
  • 268
user2541457
  • 71
  • 1
  • 8
  • [This](http://stackoverflow.com/questions/2300616/iphone-sdk-how-to-disable-the-picture-preview-in-uiimagepickercontroller) may help you. – Akhilrajtr Jan 10 '14 at 06:36

2 Answers2

0

Use this code.

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage* Image = [info valueForKey:@"UIImagePickerControllerOriginalImage"];
    [self previewImageOverlayView:Image];    
}

-(void)previewImageOverlayView :(UIImage *)captureImage
{
    CGRect deviceRect= [UIScreen mainScreen].bounds;
    float screenHeight=deviceRect.size.height;

    UIView *previewImageOveraLayView=[[UIView alloc] initWithFrame:deviceRect];
    [previewImageOveraLayView setAutoresizesSubviews:NO];

    UIImageView *previewImage=[[UIImageView alloc] init];
    [previewImage setContentMode:UIViewContentModeScaleAspectFill];
    [previewImage setFrame:CGRectMake(0,0,320,screenHeight-60)];
    [previewImage setImage:captureImage];
    [previewImageOveraLayView addSubview:previewImage];

    UIButton *retakeBtn=[UIButton buttonWithType:UIButtonTypeCustom];
    [retakeBtn addTarget:self action:@selector(useOrRetakeBtnPress:) forControlEvents:UIControlEventTouchUpInside];
    [retakeBtn setBackgroundColor:[UIColor blackColor]];
    [retakeBtn setTitle:@"Retake" forState:UIControlStateNormal];
    [retakeBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [retakeBtn setFrame:CGRectMake(0,screenHeight-60,160,60)];
    [previewImageOveraLayView addSubview:retakeBtn];


    UIButton *useBtn=[UIButton buttonWithType:UIButtonTypeCustom];
    [useBtn setTag:2000];
    [useBtn addTarget:self action:@selector(useOrRetakeBtnPress:) forControlEvents:UIControlEventTouchUpInside];
    [useBtn setBackgroundColor:[UIColor blackColor]];
    [useBtn setTitle:@"Use" forState:UIControlStateNormal];
    [useBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [useBtn setFrame:CGRectMake(160,screenHeight-60,160,60)];
    [previewImageOveraLayView addSubview:useBtn];


    [imagePicker.view addSubview:previewImageOveraLayView];
}
-(IBAction)useOrRetakeBtnPress:(UIButton*)sender
{
    [sender.superview removeFromSuperview];
}
Rajneesh071
  • 30,846
  • 15
  • 61
  • 74
0

You can use AVCapturSession instead of UIImagePickerController. You can play with it and use it as you want.

For more details on this Visit Apple sample code for this

Pawan Sharma
  • 3,199
  • 1
  • 25
  • 32