Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><strong>UPDATE:</strong> here's my other answer about how this overlay view can be put under the camera animations: <a href="https://stackoverflow.com/questions/2081872/camera-overlay-view-just-for-preview/2123186#2123186">camera overlay view - just for preview?</a></p> <p>Helo Rajendra!</p> <p>I've created a simple Window-based iPhone OS Application to give you a very simple example on what and how should be done to capture photos with camera, overlay views in camera mode, resize and merge images. This project is actually has only AppDelegate header and implementation files and can be easily reproduced in XCode.</p> <p>Here's the header file:</p> <pre><code>// // CameraWatermarkAppDelegate.h // CameraWatermark // // Created by Ivan Karpan on 1/16/10. // Copyright __MyCompanyName__ 2010. All rights reserved. // #import &lt;UIKit/UIKit.h&gt; @interface CameraWatermarkAppDelegate : NSObject &lt; UIApplicationDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate &gt; { UIImageView *imageView; UIViewController *viewController; UIWindow *window; } @property (nonatomic, retain) UIImageView *imageView; @property (nonatomic, retain) UIViewController *viewController; @property (nonatomic, retain) IBOutlet UIWindow *window; @end </code></pre> <p>And here's the implementation file:</p> <pre><code>// // CameraWatermarkAppDelegate.m // CameraWatermark // // Created by Ivan Karpan on 1/16/10. // Copyright __MyCompanyName__ 2010. All rights reserved. // #import "CameraWatermarkAppDelegate.h" const float WATERMARK_ALPHA = 0.5; @implementation CameraWatermarkAppDelegate @synthesize imageView, viewController, window; - (void)applicationDidFinishLaunching:(UIApplication *)application { self.viewController = [[UIViewController new] autorelease]; viewController.view.backgroundColor = [UIColor blackColor]; // An image view to save to (and therefore display) the captured image self.imageView = [[UIImageView new] autorelease]; imageView.frame = viewController.view.frame; [viewController.view addSubview:imageView]; [window addSubview:viewController.view]; UIImagePickerController *anImagePickerController = [UIImagePickerController new]; anImagePickerController.delegate = self; anImagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; {// This block of code is only needed in case you want your watermark to be displayed also during the shooting process UIImageView *anImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Watermark.png"]]; anImageView.alpha = WATERMARK_ALPHA; anImageView.contentMode = UIViewContentModeTopLeft; anImageView.frame = viewController.view.frame; anImagePickerController.cameraOverlayView = anImageView; [anImageView release]; } // From the very beginning we simply present the image picker controller [viewController presentModalViewController:anImagePickerController animated:NO]; [anImagePickerController release]; } - (void)dealloc { [imageView release]; [viewController release]; [window release]; [super dealloc]; } #pragma mark UIImagePickerControllerDelegate - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIGraphicsBeginImageContext(CGSizeMake(320, 480)); // This is where we resize captured image [(UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage] drawInRect:CGRectMake(0, 0, 320, 480)]; // And add the watermark on top of it [[UIImage imageNamed:@"Watermark.png"] drawAtPoint:CGPointMake(0, 0) blendMode:kCGBlendModeNormal alpha:WATERMARK_ALPHA]; // Save the results directly to the image view property imageView.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // Dismiss the image picker controller and look at the results [picker dismissModalViewControllerAnimated:YES]; } @end </code></pre> <p>I hope this will serve you as a starting point.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload