私は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] を使用すると、previewlayer コンテンツを含む UIview が返されます。しかし、UIview にぼかしを適用する方法はありません。
カメラ プレビュー レイヤーからぼやけた画像を取得するにはどうすればよいですか?