C#でOS標準搭載のAPIを呼び出してみるレイ8月11日読了時間: 2分こんにちは、レイです。早いもので入社してもうすぐ一年が経ちます。まだまだ慣れないことが多いですが、先輩方に教えてもらいながら日々業務に取り組んでいます。先日、とある案件で Web カメラの映像を画面に表示するソフトを WPF で作る機会がありました。今まではこういうとき OpenCV などの外部ライブラリを使っていたのですが、Windows 標準のカメラアプリでも同じことができるわけだし、外部ライブラリを追加せずにできないかなと調べたところ、WinRT という OS 標準機能を呼べば良さそうだったので試してみました。1. .csproj を書き換えるプロジェクト作成後、.csproj をメモ帳で開いて <TargetFramework> を次のように修正します。WinRTが搭載されはじめたバージョンを明記することで、Windows.* の API がそのまま using できるようになります。ただし、ここで指定したバージョンより古い OS では動かなくなるので注意してください。2. 画面(XAML)Image を 1 つ置きます。3. コード おわりに無事、カメラの映像を画面出力することができました。MediaCaptureクラスの「_capture」でカメラを制御、MediaFrameReader クラスの「_reader」でフレーム受信しています。標準機能を使うことで、外部ライブラリをインストールせずプロジェクトをコンパクトにできました。またMicrosoftの標準機能であることから品質も担保されていることも大きなメリットになります。他にも、画像から文字を読み取るOCR機能 、音声認識・読み上げ、クリップボード監視・操作 などたくさんの便利な機能がWindowsにはデフォルトで提供されています。もし機会があったら使ってみてください。出典デスクトップ アプリでの WinRT API の呼び出しWindows UWP 名前空間 API リファレンス
コメント