更新:
以下是关于如何将此覆盖视图置于相机动画下的其他答案:
camera overlay view - just for preview?
拉金德拉!
我创建了一个简单的基于窗口的iPhoneOS应用程序,为您提供了一个非常简单的示例,说明如何使用相机拍摄照片、在相机模式下覆盖视图、调整大小和合并图像。这个项目实际上只有appdelegate头文件和实现文件,可以很容易地在xcode中复制。
这是头文件:
#import <UIKit/UIKit.h>
@interface CameraWatermarkAppDelegate : NSObject < UIApplicationDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate > {
UIImageView *imageView;
UIViewController *viewController;
UIWindow *window;
}
@property (nonatomic, retain) UIImageView *imageView;
@property (nonatomic, retain) UIViewController *viewController;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
下面是实现文件:
#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];
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;
{
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];
}
[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));
[(UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage] drawInRect:CGRectMake(0, 0, 320, 480)];
[[UIImage imageNamed:@"Watermark.png"] drawAtPoint:CGPointMake(0, 0) blendMode:kCGBlendModeNormal alpha:WATERMARK_ALPHA];
imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[picker dismissModalViewControllerAnimated:YES];
}
@end
我希望这能作为你的起点。