使用AVCapureSessions
并尝试以不同方式显示输出CMSampleBufferRef
(使用AVCaptureVideoPreviewLayer
,显示CGImage
并将其转换为{{ 1}}),我还查看了您可以为UIImage
设置的所有不同质量预设。
然后我注意到了质量差异如何
AVCaptureSession
,AVCaptureSessionPresetLow
和AVCaptureSessionPresetMedium
不仅是图像的分辨率,还有它们的宽高比,最显着的是整体图像质量。在我的特定情况下,使用AVCaptureSessionPresetHigh
获得的帧比使用AVCaptureSessionPresetLow/Medium
的帧更亮。这是为什么?
要设置会话并显示我使用此代码的图像:http://www.benjaminloulier.com/posts/ios4-and-direct-access-to-the-camera
设置预设:
AVCaptureSessionPresetHigh
以下两个[self.captureSession setSessionPreset:AVCaptureSessionPresetHigh];
和Medium
质量的示例:
我向您保证,这两个屏幕截图是将相机指向相同的位置,同一时间和相同的光线条件。
答案 0 :(得分:1)
差异是由这些预设的目的引起的。虽然AVCaptureSessionPresetHigh
基本上用于制作视频,但AVCaptureSessionPresetLow/Medium
也可用于创建照片,因为它们与AVCaptureSessionPresetPhoto
预设具有相同的行为。您可以尝试使用默认的相机应用程序。