1

iOS のデフォルトのカメラ アプリを開くと、シーンを変更するたびに大きな青い四角が表示されます。どこかをクリックすると、関心のある露出ポイントが設定されますが、新しいボックスは非常に小さいです。iOS では、デフォルトのカメラは露出を設定するために大きな領域を使用していますが、関心のある露出ポイントを明示的に設定すると、そのポイントの周りの小さな領域が考慮されますか?

AVFoundation を使用して構築している自分のアプリに (公開に関して) 同じ設定を設定したい場合はどうすればよいですか? ドキュメントには露出ポイントの(0.5,0.5)設定AVFoundationExposureModeCOntinuousAutoExposureは露出モードとしての設定がデフォルト設定と書かれていますが、マトリックス測光ではなくポイント測光だと思います。

4

1 に答える 1

2

少なくとも私が開発に利用できる 3 つの iDevice (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];

(数字の意味については、Google の「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 に答える