WPFはキャプチャ領域を取得するのが肝!Actualが必要です。

PCカメラをつかってキャプチャができないか考えていました。ExcelVBAからWindowsAPIを使ってWebCamに接続する方法が紹介されていましたが、Windows10では動作が不安定なのであきらめました。

そこでC#で作成することを考えましたが、同じく不安定なコードしか見つかりませんでした。いろいろ試した末、GitHUBでC#のWPFを使った唯一安定して接続できるコードが公開されていました。

URL:https://github.com/jsinh-blog-code/wpf-mvvm-webcam-snapshot

これでキャプチャはできました。ただし、WPFはこれまでにはない注意が必要でした。

キャプチャをファイルとして保存すること、Excelへ出力すること、WPFで実行ファイルとDLLを一つにまとめることの3つに分けて考えます。

1番目はキャプチャをファイルとして保存することです。

URL:http://qiita.com/hbsnow/items/8ffd3b6d077d84a92900で公開されているコードは訂正が必要でした。キャプチャ領域を取得することのここが肝ですね。

×imgScreen.Width = (int)pictureBox1.Width;     ※pictureBox1はImageコントロールの名前
×imgScreen.Height = (int)pictureBox1.Height;

imgScreen.Width = (int)pictureBox1.ActualWidth;
imgScreen.Height = (int)pictureBox1.ActualHeight;

2番目はExcelへ出力する方法です。

URL:http://symfoware.blog68.fc2.com/blog-entry-1145.htmlで公開されているコードとURL:http://symfoware.blog68.fc2.com/blog-entry-1147.htmlで公開されているコードをマッチングします。


3番目は実行ファイルとDiLLを一つにまとめることです。

URL:http://qiita.com/VBmouiya/items/d388d49328cb0298eb96で公開されているコードにURL:http://yomon.hatenablog.com/entry/2014/07/14/202243の対処が必要です。

これ以外に、NuGeTパッケージのA.Forge関連やGalasoft.MvvmやClosedXMLなどを参照する必要があります。



ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント