2010-10-07 52 views
4

我打开相机视图并将图像作为叠加层。 然后我想将叠加层和相机视图的图像保存为一个图像。 以前我使用UIGetScreenImage()实现了这一点。 现在,苹果禁止这个我的选择是什么? takePicture只会捕捉摄像机数据,但会覆盖覆盖层。 将叠加层与takePicture中的图像合并会有点慢。捕获相机视图和在图像中的onverlay

回答

1

你真的不得不合并它们,它不应该超过一秒或两秒。喜欢的东西(未经测试,但应该给一个想法):

UIGraphicsBeginImageContext(myCapturedImage.size); 
[myCapturedImage drawAtPoint:CGPointZero]; //You might need to use drawInRect 
[overlayImage drawAtPoint:CGPointZero]; 
UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+0

谢谢,是的,这是非常接近我终于实现了它的方式。 – ADude 2010-10-11 09:55:47

+0

我发现的一件事就是didFinishSavingWithError花了很长时间才被调用。我正在研究这个。它也似乎锁定用户界面直到它被调用。我会认为图像保存将在一个单独的线程上完成? – ADude 2010-10-11 10:01:57

+0

您可以使用[NSThread performBlockInBackground:^ {}}在单独的线程上运行它。确保在块完成之前块没有使用任何内容! – 2010-10-11 13:28:55

相关问题