【发布时间】:2013-03-29 14:51:47
【问题描述】:
我正在构建一个应用程序,我需要在其中截取其子视图是相机会话(AVFoundation 会话)的视图。我试过这段代码:
CGRect rect = [self.containerView bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.containerView.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这有效地让我得到一个带有视图的 UIImage,只是相机会话是黑色的:
我已经尝试了私有方法UIGetScreenImage() 并且效果很好,但是由于Apple 不允许这样做,所以我不能使用它。我也尝试过Apple's docs 中的那个,但它是一样的。我已经使用层将问题跟踪到 AVFoundation 会话。我怎样才能做到这一点?该应用有一个容器视图,其中包含两个已停止的摄像头会话的视图。
【问题讨论】:
-
不久前我也遇到过这个问题。问题是相机预览层(以及一些自定义渲染层)正在使用 OpenGL。我记得您使用的方法不适用于支持 GL 的图层。我会四处打听,看看这是不是真的。
-
@SteveMcFarlin 你有办法解决这个问题吗,我也遇到了同样的问题stackoverflow.com/questions/41239254/…
-
您找到解决方案了吗?
标签: camera avfoundation screenshot calayer layer