酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows Mobile(.NET Compact Framework)でCameraCaptureDialogを使って静止画撮影する

カメラを使って静止画撮影を行う方法をご紹介します。

Microsoft.WindowsMobile.Forms名前空間の CameraCaptureDialogクラスを利用する事で簡単に静止画撮影を行う事が出来ます。ここでは、ダイアログのタイトルを「Camera Demo」にして、撮影画角をQVGA(320 x 240)に設定しました。画質は標準に設定しています。

以下に、サンプルコードを示します。

CameraCaptureDialogを使って静止画撮影する

VB.NET

' 以下の名前空間を指定します
' Imports Microsoft.WindowsMobile.Forms
   
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   
    Dim cameraCapture As New CameraCaptureDialog()
   
    cameraCapture.Owner = Nothing
     cameraCapture.InitialDirectory = "\My Documents"
     cameraCapture.DefaultFileName = "test.jpg"
     cameraCapture.Title = "Camera Demo"
     cameraCapture.Resolution = New Size(176, 144)
     cameraCapture.StillQuality = CameraCaptureStillQuality.Normal
   
     ' カメラアプリを起動します
     cameraCapture.ShowDialog()
       
End Sub

C#

// 以下の名前空間を指定します
// Using Microsoft.WindowsMobile.Forms;
   
private void Button1_Click(System.Object sender, System.EventArgs e)
{
    CameraCaptureDialog cameraCapture = new CameraCaptureDialog();
       
    cameraCapture.Owner = null;
    cameraCapture.InitialDirectory = "\\My Documents";
    cameraCapture.DefaultFileName = "test.jpg";
    cameraCapture.Title = "Camera Demo";
    cameraCapture.Resolution = new Size(176, 144);
    cameraCapture.StillQuality = CameraCaptureStillQuality.Normal;
       
    // カメラアプリを起動します
    cameraCapture.ShowDialog();
}

上記のコードを実行してみました。

f:id:ch3cooh393:20140723152255p:plain

画質を選択する

サンプルコードでは、標準品質の静止画を撮影する設定になっていましたが、高品質の動画を録画したい場合、CameraCaptureDialog の StillQuality プロパティを変更します。設定可能な設定値は以下の通りです。

Default 標準のカメラアプリの設定値を使用する
High 高品質
Low 低品質
Normal 標準の品質

VB.NET

' 高品質の画像の設定にする
cameraCapture.StillQuality = CameraCaptureStillQuality.High

C#

// 高品質の画像の設定にする
cameraCapture.StillQuality = CameraCaptureStillQuality.High;