1.创建一个类并继承UIImagePickerController实现<UINavigationControllerDelegate,UIImagePickerControllerDelegate>。
2.重写
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated方法。
3.隐藏Camera控制器原有的UI
[self setShowsCameraControls:NO];
4.创建自定义的视图并增加到当前视图中
[self.view addSubview:自定义视图];
5.调用[super takePicture];进行拍照
调用 [self dismissViewControllerAnimated:YES completion:^{}];退出相机
6.实现
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
}得到照相后得到的图片
7.使用该方法根据传入的视图进行截图返回
- (UIImage *) ScreenShots:(UIView *)cv {
UIImage *screenImage;
UIGraphicsBeginImageContext(cv.frame.size);
[cv.layer renderInContext:UIGraphicsGetCurrentContext()];
screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenImage;
}
8.使用该方法将截图打水印到照相后的图片上
//将两张图片合成一张图片
- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 {
UIGraphicsBeginImageContext(image1.size);
// Draw image1
[image1 drawInRect:CGRectMake(0, 0, image1.size.width, image1.size.height)];
// Draw image2
[image2 drawInRect:CGRectMake(0, 0, image2.size.width, image2.size.height)];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultingImage;
}
实现效果