在 RosyWriter 中拍摄照片

Capture Photo in RosyWriter

我发现 Apple 创建的 RosyWriter 示例 有很好的用途,它允许您从 this link.

捕获通过 GLSL 层的视频

我想扩展它一点,让我不仅可以拍摄视频,还可以拍摄照片。使用相同的捕获会话、相同的视频设置、相同的分辨率等(本质上只是将单帧视频捕获到图像中)

它应该是直截了当的,但我似乎无法找到我需要从哪里获取缓冲区并保存到 Photolibrary。

据我了解,我可以使用委托:

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection "

但是我没有成功。 谁能指出我正确的方向?

我找到了解决方案。

我不得不使用 renderedPixelBuffer

而不是使用包含来自相机的未修改样本的 sampleBuffer

问题在于,虽然 sampleBufferCMSampleBufferRef,但 renderedPixelBufferCVPixelBufferRef

使用 CMSampleBufferCreateForImageBuffer 我转换得到了一个 Samplebuffer,我可以用它来保存为图像。