WPFで画面の選択範囲だけをキャプチャする:Snipping Tool風の実装
公開
この記事は2022年に書いたものです。ソフトウェアのバージョンや配布状況など、いまとは異なる場合があります。
以前OCRアプリを作ったとき、PC画面の中から文字のある部分だけを切り取る必要がありました。ここでずいぶん苦労したので、参考になるコードを残しておきます。
WPFだと情報が少なかった
WinFormsでの方法は検索すると割と見つかります。ところがWPFになると、画面全体のスクリーンショットや決まった大きさの矩形を切り取る例ばかりで、ユーザーが好きな大きさの範囲を選べるものはなかなか見つかりませんでした。
あれこれ試した末、最終的には割とシンプルな方法で実装できました。
サンプル
細かい実装はGitHubのサンプルにまとめています。マルチモニターの環境でも、すべてのモニターの領域をまとめて覆うようにしています。
同じところで悩んでいる方の助けになれば幸いです。