ちょこっとメモ書きです。
AVFoundationを用いたカメラ撮影をして、取得した画像を画面いっぱいに表示してみると、なんでか画像がキュッと縦に引き伸ばした画像になってしまいます。
iPhone7での検証ですが、よくよく考えてみるとデフォルトのカメラも上下に黒い帯が入っているので画面サイズぴったりの写真を撮っているわけじゃないんですね。
AVFoundationを用いた撮影方法のコードは今回は割愛しますが、とりあえず撮影される写真サイズの話だけをしますね。
AVCaptureSession の sessionPreset
AVCaptureSessionのsessionPresetってやつが画像のクオリティ設定になります。
設定の種類は「Video Input Presets」に書かれている通りです。
デフォルトでは「AVCaptureSessionPresetHigh」が指定されています。
今回、「AVCaptureSessionPresetPhoto」を指定していたのですが、画像取得して画面いっぱいに表示してみると(16:9)縦長の画像になっていました。
コンソールで見てみると、
AVCaptureSessionPresetPhoto を指定した時 3024 : 4032
AVCaptureSessionPresetHigh を指定した時 1080 : 1920
の画像を取得していました。(iPhone7)
つまり、
AVCaptureSessionPresetPhoto を指定した時の比率 3:4
AVCaptureSessionPresetHigh を指定した時の比率 9:16
の画像を取得しているんですね。
ちなみにiPhone4Sでも動かして見たところ
AVCaptureSessionPresetPhoto を指定した時 2448 : 3264
AVCaptureSessionPresetHigh を指定した時 1080 : 1920
で
AVCaptureSessionPresetPhoto を指定した時の比率 3:4
AVCaptureSessionPresetHigh を指定した時の比率 9:16
という結果になりました。
iPhone4Sは画面の比率が2:3なので、画面いっぱいに表示しようと思うとHighを指定した時の9:16には当てはまらなくなります。
4Sに対応するかどうか、データサイズ等も含めてちょっと考えなきゃいけないかなぁと思います。
メモ書きですが何かの参考になればと思います。それではでは
AVFoundationを用いた撮影方法は下記の記事を参考にさせていただいてます。
[Swift2] カメラで静止画を撮影 (AVFoundation)
コメント時の注意
「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。