基于AVFoundation的自定义相机HDR实现方式技术问询
关于自定义相机HDR拍摄的疑问解答
嘿,刚好之前做自定义相机时踩过类似的坑,来给你唠唠这两个问题:
1. isVideoHDREnabled与automaticallyAdjustsVideoHDREnabled能不能实现拍照HDR?
答案是不行,这俩属性完全是针对视频录制的,和静态照片HDR没有半毛钱关系:
isVideoHDREnabled是用来控制视频录制时是否开启HDR模式的开关;automaticallyAdjustsVideoHDREnabled则是让系统根据场景自动决定是否启用视频HDR。
如果要实现拍照HDR,得用AVCapturePhotoSettings里的isHDREnabled属性——这才是专门给静态照片HDR准备的配置项。之前混淆视频和照片的API很正常,苹果的相机框架里确实有不少名字相近但作用完全不同的属性,得仔细区分。
2. 包围曝光照片序列是不是当前最接近HDR的实现方式?
没错,包围曝光序列(Bracketed Photo Sequence)是自定义相机场景下实现可控HDR效果的主流方案,甚至可以说比原生自动HDR更灵活:
- 原生自动HDR是系统帮你自动拍几张不同曝光的照片然后合成,但你没法干预曝光档位、拍摄数量这些参数;
- 而包围曝光允许你手动设置多组不同的曝光补偿值(比如-2EV、0EV、+2EV),拍摄一组照片后自己做后期合成,能更精准地控制最终HDR的效果,尤其是在复杂光线下(比如逆光、大光比场景)表现更好。
如果你的需求是完全自定义HDR的拍摄流程,而不是依赖系统自动处理,那包围曝光绝对是当前最靠谱的实现方式。
内容的提问来源于stack exchange,提问作者Rikh
相关产品推荐
相关产品推荐

