AVCapturePhotoOutput 颜色与预览层不同

Posted

技术标签:

【中文标题】AVCapturePhotoOutput 颜色与预览层不同【英文标题】:AVCapturePhotoOutput color different than preview layer 【发布时间】:2017-10-04 21:13:36 【问题描述】:

捕获图像时,输出图像的颜色与我在预览图层上看到的颜色不同。由于某种原因,颜色略有变化。有没有人遇到过这个问题?我该如何解决这个问题?

当我从didFinishProcessingPhotoSampleBuffer 获取图像时,绿色有点暗

【问题讨论】:

【参考方案1】:

阅读AVCapturePhotoOutput的官方文档我发现了这个:

AVCapturePhotoOutput 类隐式支持广色域彩色摄影。如果源 AVCaptureDevice 对象的 activeColorSpace 值为 P3_D65,则捕获输出会生成具有广色域信息的照片(除非您的 AVCapturePhotoSettings 对象指定的输出格式是不支持广色域)。

还有activeColorSpace:

默认情况下,捕获会话会自动为支持的设备和捕获工作流启用广色域捕获...

所以也许你的设备默认支持它,这就是为什么在输出中你会看到不同颜色的图像。尝试更改activeColorSpace 看看是否会有所不同。

【讨论】:

以上是关于AVCapturePhotoOutput 颜色与预览层不同的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AVCapturePhotoOutput

在 iOS10 中使用 AVCapturePhotoOutput - NSGenericException

使用 AVCapturePhotoOutput 使用闪光灯拍照时出现问题

无法仅获取在 Swift 中显示相机(AVCapturePhotoOutput)的 UIView 的屏幕截图

为啥在 AVCapturePhotoOutput 上调用 .capturePhoto(with:,delegate:) 会导致崩溃

iOS拍照定制之AVCapturePhotoOutput