设置iOS相机应用设置

时间:2012-10-31 11:51:42

标签: ios camera

当我打开iOS的默认相机应用程序时,每当我在场景中进行更改时,我都会看到一个大的蓝色方块,我认为这会照顾曝光。如果我点击某个地方,它会设置感兴趣的曝光点,但新的框很小。是不是在iOS中,默认相机使用更大的区域来设置曝光,但如果我明确设置了一个感兴趣的曝光点,那么这个点周围的区域就会被考虑?

如果我想为我自己的应用设置相同的设置(就曝光而言),我正在使用AVFoundation构建该怎么办? 在文档中写入了seiping曝光点为(0.5,0.5)并设置AVFoundationExposureModeCOntinuousAutoExposure,因为曝光模式是默认设置,但我认为它是点测光而不是矩阵测光..

1 个答案:

答案 0 :(得分:1)

如此:至少在我可用于开发的三个iDevices(iPhone 4S,iPad 3,iPod touch 4G)上,相机以“模式”测光模式(a.k.a.矩阵模式)启动。如果我然后设置感兴趣的曝光点并将曝光模式设置为连续,如AVFoundation文档中所述,相机将切换到点测光。

你可以自己检查一下;在willOutputSampleBuffer来电中,获取EXIF数据并查看测光模式:

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

(谷歌“EXIF MeteringMode”代表数字的含义。)

我发现将相机重置为矩阵模式的唯一方法是,无法关闭应用程序,以编程方式重置p.o.i.到完全 {0.5,0.5}:

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

p.o.i的任何其他值。触发点模式。