设置iOS摄像头应用程序设置

设置iOS摄像头应用程序设置,ios,camera,Ios,Camera,当我打开iOS的默认摄像头应用程序时,每当我改变场景时,我都能看到一个蓝色的大正方形,我认为这可以解决曝光问题。如果我单击某个地方,它会设置感兴趣的曝光点,但新框相当小。是不是在iOS中,默认相机使用更大的区域来设置曝光,但如果我明确设置了感兴趣的曝光点,则会考虑点周围的小区域 如果我想为我自己的应用程序(我正在使用AVFoundation构建)设置相同的设置(曝光),该怎么办? 在文档中写到,设置曝光点是(0.5,0.5),设置AVFoundationExposureModeCOntinuou

当我打开iOS的默认摄像头应用程序时,每当我改变场景时,我都能看到一个蓝色的大正方形,我认为这可以解决曝光问题。如果我单击某个地方,它会设置感兴趣的曝光点,但新框相当小。是不是在iOS中,默认相机使用更大的区域来设置曝光,但如果我明确设置了感兴趣的曝光点,则会考虑点周围的小区域

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

正是如此:至少在我可用于开发的三个设备上(iPhone 4S、iPad 3、iPod touch 4G),相机以“模式”测光模式(也称为矩阵模式)启动。如果我随后设置感兴趣的曝光点,并按照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.的任何其他值都会触发点模式。

是的。这正是我所看到的。顺便说一句,你有没有看到任何描述iOS测光如何完成的文档或文章?没有,我没有,我已经看过了…所以我只是自己解决。