我正在开发一个 iOS7 视频录制应用程序。我们应用程序中的相机屏幕需要显示类似于 iOS7 控制中心中显示的模糊背景。在显示视频预览时,我们需要显示模糊的控制中心。正如 WWDC 视频 226 中所建议的那样,我使用下面提供的代码来获取相机预览快照,然后应用模糊并将此模糊图像设置到我的视图中。
UIGraphicsBeginImageContextWithOptions(_camerapreview.frame.size, NULL, 0);
[_camerapreview drawViewHierarchyInRect:rect];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
lightImage = [newImage applyLightEffect]
这里 _camerapreview 是一个包含 AVCaptureVideoPreviewLayer 的 UIView。从上下文中获得的 *newImage 出于某种原因是黑色的。
但是,如果我使用 [_camerapreview snapshotView] 会返回一个带有预览层内容的 UIview。但是没有办法在 UIview 上应用模糊。
如何从相机预览层获得模糊的图像?