Windowsモバイル:C# で携帯電話のカメラを使用する
-
23-08-2019 - |
質問
携帯電話のカメラが WinForm のコントロールを捉えている画像を表示したいと考えています。アイデアは、私のアプリケーションがカメラのプログラムのように動作するということです。ユーザーが写真を撮るような画像を表示したい。
どうやってやるの?それをしてもいいですか?
さらに詳細が必要な場合は、私に質問してください。
ありがとう!
解決
何が必要なのかよくわかりませんが、Microsoft.WindowsMobile.Forms.CameraCaptureDialog を使用してみるとよいでしょう。
string originalFileName;
using (CameraCaptureDialog dlg = new CameraCaptureDialog()) {
dlg.Mode = CameraCaptureMode.Still;
dlg.StillQuality = CameraCaptureStillQuality.Low;
//dlg.Resolution = new Size(800, 600);
dlg.Title = "Take the picture";
DialogResult res;
try {
res = dlg.ShowDialog();
}
catch (Exception ex) {
Trace.WriteLine(ex);
return null;
}
if (res != DialogResult.OK)
return null;
this.Refresh();
originalFileName = pictureFileName = dlg.FileName;
}
後で編集:このリンクも役に立つと思う人もいるかもしれません:http://community.intermec.com/t5/General-Development-Developer/CN50-MS-Camera-Capture-Dialog-generates-error/m-p/12881#M4083
他のヒント
必要なのはキャプチャではなくプレビューですが、これははるかに困難です。最良の (そしておそらく唯一の) 解決策は、フィルターグラフに DShow フィルターを挿入して、プレビュー ウィンドウを希望の場所にパイプすることです。
COM は Compact Framework の弱者であり、DShow はどのプラットフォームを使用していても困難です。オンラインには次のようなリソースがいくつかあります。 SourceForge の DShow.NET ライブラリ, 、 そして アレックス・モグレンコのブログ, しかし、キャプチャの作成に特化したものは何もありません。
WinMo SDK には、そこに到達するための役立つガイドとなるネイティブ キャプチャ サンプルがあります。
私は、あなたが直接SDKまたは類似のものを使用して、ハードウェアに対してプログラミングするべきだと思います。
ハードウェアに対するプログラミングは直接C / Cで通常であるので、++ SDKには、おそらくネイティブになります。だから、どちらかあなたはおそらくのPInvokeと危険なキーワードを使用する必要があります。
しかし、最初にあなたがカメラにアクセスする方法を見つける必要があり、これはハードウェアに依存しているので、あなたは携帯電話のmanufacturereのウェブサイト上で開始することができます。
OpenNetCF.org のカメラからフレームをキャプチャするなど、ポケットPCのためのいくつかのツールを持っているからSmartDeviceFrameworkを確認します。