IPhone: camera preview

How to add an overlay ( UIImageView ) to the camera preview and the handle touches this?

My previous attempts to do this (for example, using the UIImagePickerController and adding the image as a preview) failed.

+43
iphone camera uiimagepickercontroller uiimageview
Jun 16 '09 at 13:04
source share
4 answers

This guide explains the following: http://www.musicalgeometry.com/?p=821

Just add UIImage to the overlay view instead of the red area indicated in the tutorial.

+37
Jan 12
source share

For your implementation file:

 - (IBAction)TakePicture:(id)sender { // Create image picker controller UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; // Set source to the camera imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; // Delegate is self imagePicker.delegate = self; OverlayView *overlay = [[OverlayView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; // Insert the overlay: imagePicker.cameraOverlayView = overlay; // Allow editing of image ? imagePicker.allowsImageEditing = YES; [imagePicker setCameraDevice: UIImagePickerControllerCameraDeviceFront]; [imagePicker setAllowsEditing:YES]; imagePicker.showsCameraControls=YES; imagePicker.navigationBarHidden=YES; imagePicker.toolbarHidden=YES; imagePicker.wantsFullScreenLayout=YES; self.library = [[ALAssetsLibrary alloc] init]; // Show image picker [self presentModalViewController:imagePicker animated:YES]; } 

Create a UIView class and add this code

  - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code // Clear the background of the overlay: self.opaque = NO; self.backgroundColor = [UIColor clearColor]; // Load the image to show in the overlay: UIImage *overlayGraphic = [UIImage imageNamed:@"overlaygraphic.png"]; UIImageView *overlayGraphicView = [[UIImageView alloc] initWithImage:overlayGraphic]; overlayGraphicView.frame = CGRectMake(30, 100, 260, 200); [self addSubview:overlayGraphicView]; } return self; } 
+10
Nov 06
source share

Perhaps you can add UIImageView as a subtask of the main window directly instead of UIImagePicker , it might work better. Just remember to add them in the correct order or call

 [window bringSubviewToFront:imageView]; 

after the camera got up.

If you want to handle strokes on a UIImageView , you can simply add a UIImageView as a UIImageView of a normal full-screen View with a transparent background and add that to the window instead, with the usual UIViewController subclass, which you can use to handle touch events.

+3
Jun 16 '09 at 13:28
source share

See camera overlay view (available in 3.1 and later)

 @property(nonatomic, retain) UIView *cameraOverlayView 
+2
Feb 08 '11 at 17:45
source share



All Articles