MediaCpatureで写真を撮るには

MediaCapture

カメラで写真をとるだけならCameraCaptureUIを使うと楽に写真を撮ることができます。

しかし、CameraCaptureUIは既存のUIを使用するので自分でキャプチャ部分を定義できません。

 

自由度が高く、独自のUIを使って写真を撮りたいならMediaCaptureを使います。

 

まずはデバイス列挙をしてどのカメラを使うかを選択します。

DeviceClass.VideoCaptureを指定することでカメラデバイスだけを列挙することができます。

今回は0番目のカメラを使用します。

 

MediaCaptureInitializationSettingでどのデバイスを使うのかIdを設定します。

 

次にMediaCaptureをnewし、InitializeAsyncでカメラの初期化を行います。

このとき、先ほど作ったMediaCaptureInitializationSettingを引数にいれます。

InitializeAsyncに何も引数をいれない場合、どれか一つのWebカメラが使用されます。

 

現在カメラで写している画面をPreviewするためにcaptureElementコントロールをXAMLに配置し、

そのSourceにmediaCaptureのインスタンスを渡します。

 

WindowsPhoneの場合、Preview画面が270度回転してしまっているので270度回転させておきます。

 

ここまでで初期化は完了です。

 

Previewする場合はStartPreViewAsyncメソッドを呼び出します。

 

写真を撮るときは、CapturePhotoToStorageFileAsyncメソッドを呼び出します。

引数にImageEncodingProperties列挙体メンバーをいれることでjpgやpngを指定することができます。

今回はカメラロールに取得した写真を保存します。

 

終了するときは、

StopPreviewAsyncでプレビューを終了し、DisposeメソッドでMediaCaptureのリソースを正しく破棄します。

 

サスペンド時に正しく終了処理をしましょう。

 

 

実行するときはマニフェストファイルのWebカメラにチェックをいれましょう。今回はカメラロールも使用するので画像ライブラリにもチェックをいれます。

Research in which the students in a course do interact with participants https://www.pro-academic-writers.com/ outside of the course e