1

当我打开 iOS 的默认相机应用程序时,每当我对场景进行更改时,我都会看到一个蓝色的大方块,我认为这可以解决曝光问题。如果我单击某处,它会设置感兴趣的曝光点,但新框非常小。是不是在iOS中,默认相机使用更大的区域来设置曝光,但是如果我明确设置曝光的兴趣点,会考虑该点周围的小区域?

如果我想为自己使用 AVFoundation 构建的应用程序设置相同的设置(在曝光方面)怎么办?在文档中写到设置曝光点(0.5,0.5)和设置AVFoundationExposureModeCOntinuousAutoExposure为曝光模式是默认设置,但我认为它是点测光而不是矩阵测光..

4

1 回答 1

2

确实如此:至少在我可用于开发的三台 iDevice(iPhone 4S、iPad 3、iPod touch 4G)上,相机以“模式”测光模式(也称为矩阵模式)启动。如果我随后按照 AVFoundation 文档中的描述设置一个感兴趣的曝光点并将曝光模式设置为连续,则相机将切换到点测光。

您可以自己检查一下;在willOutputSampleBuffer调用中,获取 EXIF 数据并查看 Metering Mode:

NSDictionary* dict = (__bridge NSDictionary*) CMGetAttachment(sampleBuffer,
    kCGImagePropertyExifDictionary, NULL);
...
int meterMode = 
    [[dict objectForKey:(id)kCGImagePropertyExifMeteringMode] integerValue];

(谷歌“EXIF MeteringMode”了解数字的含义。)

我发现将相机重置为矩阵模式(不关闭应用程序)的唯一方法是以编程方式将 poi 重置为{ 0.5,0.5 }:

CGPoint poi;
poi.x = poi.y = 0.5;
if ([inputCamera lockForConfiguration:nil]) {
    inputCamera.exposurePointOfInterest = poi;
    inputCamera.exposureMode = AVCaptureExposureModeContinuousAutoExposure;
    [inputCamera unlockForConfiguration];
}

poi 的任何其他值都会触发点模式。

于 2012-12-30T05:24:00.597 回答