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

4

我打开相机视图并放置一个图像作为叠加层。 然后,我想将叠加层和相机视图的图像保存为一张图片。 以前,我使用UIGetScreenImage()实现了这一点。 现在苹果禁止了这个方法,我有什么选择? takePicture只能捕获相机数据而不是叠加层。 将叠加层与从takePicture获取的图像合并有点慢。

1个回答

1

你真的需要合并它们,这不应该超过一两秒钟。可以尝试以下代码(未经测试,但应该能够提供思路):

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

谢谢,是的,这非常接近我最终采取的方式。 - ADude
我发现的一个事情是didFinishSavingWithError需要很长时间才会被调用。我正在研究这个问题。同时它似乎会锁定UI,直到它被调用为止。我本以为图像保存会在一个单独的线程上完成呢? - ADude
你可以使用[NSThread performBlockInBackground:^{}]在单独的线程上运行它。确保在块完成之前不要释放块使用的任何东西! - Peter DeWeese

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接