请教关于 iOS8 相机 中的 ISO 值

2014-12-21 00:10:09 +08:00
 adow

在 iOS 8 中,可以手动控制快门速度和 ISO,但是 ISO 的值必须在AVCaptureDeviceFormat.minISOAVCaptureDeviceFormat.maxISO 之间,奇怪的是,我得到的相机的 minISOmaxISO 一直是 29 和 464 (iPhone6), 用 iPhone 4S 得到的是另一个值(maxISO: 734),如果在setExposureModeCustomWithDuration 时使用超过这个范围的 ISO 就会引发异常, 但是这明显应该是不对的, iPhone 6 的最大 ISO 应该可以达到 2000。 我用 Camera Plus 拍照时调成手动模式的确可以选到 1600 以上。

我很好奇难道这个 ISO 不是我所理解的感光度值吗,为什么只能在 29-464 之间来调整 ISO,难道需要经过计算才是我所需要的 ISO. 我在 captureStillImageAsynchronouslyFromConnection 的时候通过CMCopyDictionaryOfAttachments 获取到的 exif 中,保存的 isoSpeedRating 的确是我设置的那个ISO(29-464之间的值)。

请教有人了解这究竟是怎么回事呢?

3989 次点击
所在节点    iDev
3 条回复
besto
2014-12-21 00:28:27 +08:00
说个可能性,不一定正确。
你确定用的是前置还是后置的Camera?
adow
2014-12-21 22:12:37 +08:00
@besto 之前我只使用了背后的摄像头,看了回帖我也试了一下改成前置摄像头,得到的 maxISO:2176, 难道是只有前置摄像头才有2000的 ISO吗?

然后我又用了 Camera Plus ,背后摄像头使用手动模式可以控制到1600,拍出来的照片的exif 的确是1600;我又试了系统的相机,他不能手动控制iso和快门,但是我把曝光补偿设置到最大,拍出来的照片 exif 中显示 ISO: 2000。而且在同样的环境下拍出来的照片的确比我的亮很多,我的App中使用自动曝光程序,把曝光补偿设置到 +8,也始终只有 ISO 500 的照片。

无法理解啊。
adow
2014-12-22 16:13:56 +08:00
貌似弄明白了,原来是没有设置 AVCaptureSession 的sessionPreset,默认是AVCaptureSessionPresetHigh,应该设置成AVCaptureSessionPresetPhoto,前者的 ISO 和照片大小只有 1800 * 1920,设置成后面的话,ISO可以到2000,照片大小可以到 2448*3224。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/155418

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX