特别感谢提前...... 我是iphone软件开发的先驱者。
正在寻找如何使用cocoa以编程方式将水印图像实时添加到摄像机视图中。不是一步一步寻找(虽然那会很棒),但或多或少地寻找我应该开始学习如何的地方。是否开发了适用于此的框架。想要使用XCode框架的Objective-C原生内容,因为我希望最终能够在iPhone上实现这一目标。任何帮助都会很棒。
答案 0 :(得分:4)
更新:这是关于如何将此叠加视图置于相机动画下的另一个答案:camera overlay view - just for preview?
Helo Rajendra!
我创建了一个简单的基于窗口的iPhone OS应用程序,为您提供一个非常简单的示例,说明如何使用相机捕获照片,在相机模式下叠加视图,调整大小和合并图像。该项目实际上只有AppDelegate头和实现文件,可以在XCode中轻松复制。
这是头文件:
//
// CameraWatermarkAppDelegate.h
// CameraWatermark
//
// Created by Ivan Karpan on 1/16/10.
// Copyright __MyCompanyName__ 2010. All rights reserved.
//
#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
这是实施文件:
//
// 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
我希望这可以作为一个起点。