在 iOS 8 中,可以手动控制快门速度和 ISO,但是 ISO 的值必须在AVCaptureDeviceFormat.minISO
和 AVCaptureDeviceFormat.maxISO
之间,奇怪的是,我得到的相机的 minISO
和 maxISO
一直是 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之间的值)。
请教有人了解这究竟是怎么回事呢?
1
besto 2014-12-21 00:28:27 +08:00 1
说个可能性,不一定正确。
你确定用的是前置还是后置的Camera? |
2
adow OP @besto 之前我只使用了背后的摄像头,看了回帖我也试了一下改成前置摄像头,得到的 maxISO:2176, 难道是只有前置摄像头才有2000的 ISO吗?
然后我又用了 Camera Plus ,背后摄像头使用手动模式可以控制到1600,拍出来的照片的exif 的确是1600;我又试了系统的相机,他不能手动控制iso和快门,但是我把曝光补偿设置到最大,拍出来的照片 exif 中显示 ISO: 2000。而且在同样的环境下拍出来的照片的确比我的亮很多,我的App中使用自动曝光程序,把曝光补偿设置到 +8,也始终只有 ISO 500 的照片。 无法理解啊。 |
3
adow OP 貌似弄明白了,原来是没有设置 AVCaptureSession 的sessionPreset,默认是AVCaptureSessionPresetHigh,应该设置成AVCaptureSessionPresetPhoto,前者的 ISO 和照片大小只有 1800 * 1920,设置成后面的话,ISO可以到2000,照片大小可以到 2448*3224。
|