うるおいらんど

アプリ開発やサイト制作のメモとか。

【Swift】AVFoundationを用いたカメラ撮影で取得できる画像サイズについて【メモ】

魚ライン
魚ライン

ちょこっとメモ書きです。

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)

 

魚ライン
モッピー!お金がたまるポイントサイト
魚ライン

Swiftの記事一覧を見る

コメント

コメントは認証制です。詳しくは下記の注意をお読みください。

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

魚ライン 魚ライン