Iphone 捕获相机视图并在图像中显示

Iphone 捕获相机视图并在图像中显示,iphone,camera,uiimagepickercontroller,overlay,Iphone,Camera,Uiimagepickercontroller,Overlay,我打开相机视图并将图像作为覆盖放置。 然后,我想将叠加和摄影机视图的图像保存为一个图像。 之前,我使用UIGetScreenImage()实现了这一点。 既然苹果禁止这样做,我的选择是什么? takePicture将仅捕获相机数据,而不会捕获覆盖。 将覆盖图与拍摄的图像进行合并有点慢。您确实需要合并它们,并且不会花费超过一两秒钟的时间。类似(未经测试,但应给出想法): 谢谢,是的,这是我最后做这件事的非常接近的方式。我发现一件事是,我花了很长时间才被称为DidFinishSavingWither

我打开相机视图并将图像作为覆盖放置。 然后,我想将叠加和摄影机视图的图像保存为一个图像。 之前,我使用UIGetScreenImage()实现了这一点。 既然苹果禁止这样做,我的选择是什么? takePicture将仅捕获相机数据,而不会捕获覆盖。
将覆盖图与拍摄的图像进行合并有点慢。

您确实需要合并它们,并且不会花费超过一两秒钟的时间。类似(未经测试,但应给出想法):


谢谢,是的,这是我最后做这件事的非常接近的方式。我发现一件事是,我花了很长时间才被称为DidFinishSavingWitheror。我正在调查这件事。它似乎也会锁定UI,直到调用它为止。我原以为图像保存是在一个单独的线程上完成的?您可以使用[NSThread performBlockInBackground:^{}在一个单独的线程上运行它。确保在块完成之前不会释放块使用的任何内容!
UIGraphicsBeginImageContext(myCapturedImage.size);
[myCapturedImage drawAtPoint:CGPointZero]; //You might need to use drawInRect
[overlayImage drawAtPoint:CGPointZero];
UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();