画面キャプチャユーティリティ — 画面の任意領域・ウィンドウをキャプチャし、連番ファイルとして保存します。
- 1. 概要
- 2. 機能一覧
- 3. システム要件
- 4. インストール方法
- 5. 操作方法
- 6. 設定ファイル
- 7. アーキテクチャ概要
- 8. トラブルシューティング
- 9. ドキュメント
- 10. ライセンス
SaveEvidence は Windows デスクトップ上の画面をキャプチャし、プレビュー・編集・保存するためのアプリケーションです。
スクリーン全体、特定ウィンドウ、任意の矩形領域の 3 種類のキャプチャ方法をサポートし、グローバルホットキーから瞬時に起動できます。
キャプチャした画像はアプリ内でプレビュー表示され、切り出し(クロップ)、クリップボード連携、ファイル保存などの操作が可能です。
| キャプチャ方法 | 説明 | 既定のホットキー |
|---|---|---|
| スクリーン選択 | マルチスクリーン環境でキャプチャする画面をクリックして選択します。 シングルスクリーン時は即時キャプチャされます。 | Ctrl + Shift + Q |
| ウィンドウ選択 | マウスカーソル下のウィンドウを自動検出し、クリックで選択してキャプチャします。 | Ctrl + Shift + W |
| 範囲選択 | マウスドラッグで自由に矩形領域を指定してキャプチャします。 | Ctrl + Shift + E |
キャプチャ中はメインウィンドウが自動的に非表示になり、操作の妨げになりません(設定画面で切替可能)。
キャプチャ中の操作を中断するには Esc キーを押します。
キャプチャした画像はメインウィンドウのプレビューエリアに表示され、以下の編集操作が可能です。
- プレビュー画像上でマウスドラッグするだけで切り出しモードが開始されます
- 選択領域は 8 方向ハンドルでリサイズ可能
- 選択領域内をドラッグして移動可能
- アプリ内のボタンまたはコンテキストメニューから「切り出し」を実行
- 画像内のウィンドウ領域を背景色から自動判定して切り出します
- 画像四隅の背景色(最頻色)を基準に、背景色と異なるピクセルが現れる境界を上・下・左・右から探索してウィンドウ領域を検出する方式
| 操作 | ショートカット |
|---|---|
| 画像をクリップボードにコピー | Ctrl + C |
| クリップボードから画像を貼り付け | Ctrl + V |
クリップボードに画像がない場合は貼り付けできません。
- 最大 5 段階のアンドゥに対応
- 切り出し操作前の状態に戻せます
- アンドゥを取り消すリドゥ(やり直し)にも対応(
Ctrl + Y/ メニュー「Image - 元に戻すを取り消す」)
- ズーム率の選択肢(フライアウト): 自動、10、15、25、35、50、75、100、150、200、250、350、500%
- ⊖⊕ ボタン: 10、12、15、20、25、33、40、50、62、75、80、90、100、110、125、150、200、250、300、350、400、450、500% の 23 段階で拡大/縮小
Ctrl + マウスホイールまたはCtrl + +/-キーで拡大/縮小(Ctrl+ホイールは現在の拡大率 ×1.1 / ÷1.1、10〜500% にクランプ)- 自動フィットモード(画像をウィンドウに合わせる。 Fit 中の拡大率も % 表示)
- ズーム中心はマウスポインタ位置(画像内)。 画像外(ビューポートの空き領域)ではビューポート中心を基準に拡大縮小
- パン(画像の移動): マウスドラッグまたはホイールでスクロール(Shift+ホイールで横スクロール)。 拡大時はスクロールバーも表示
- キャプチャ選択画面(範囲選択中)でマウス位置を拡大表示
- 表示可否は動作モード(選択矩形を使うモード)とルーペのソース・中心の有無から導出します(表示専用のフラグ設定は持ちません)
- 拡大率 4 ~ 32 倍(偶数推奨)
- サイズ 64 ~ 512 ピクセル
- 十字線と外枠の色・太さ、選択矩形破線の色、カーソルからのオフセットをカスタマイズ可能
- 設定画面「外観設定」のチェックボックス(スクロール不要時は中央に配置)で切替
- 中央寄せ: 画像が小さい場合でもパネル中央に表示
- 左上寄せ: 画像をパネルの左上に配置(スクロール可能)
テキストボックスにテンプレート文字列を入力して保存ファイル名を決定します。
| プレースホルダ | 置換内容 | 例 |
|---|---|---|
{date} |
日付(yyyyMMdd 形式) | 20250101 |
{time} |
時刻(HHmmss 形式) | 120000 |
{yyyy} |
年 4 桁 | 2025 |
{MM} |
月 2 桁 | 01 |
{dd} |
日 2 桁 | 01 |
{HH} |
時 2 桁(24 時間制) | 12 |
{mm} |
分 2 桁 | 34 |
{ss} |
秒 2 桁 | 56 |
プレースホルダは複数組み合わせられます(例: screenshot_{yyyy}{MM}{dd}_{HH}{mm}{ss}.png)。
中括弧自体は {{ / }} でエスケープできます(例: abcd{{e}}f{yyyyMMdd} → abcd{e}f20260819)。
数値の自動インクリメント:
テンプレート内の右端の数値連続が自動的に +1 されます。
例: screenshot_01.png → screenshot_02.png → ... → screenshot_99.png → screenshot_100.png
- 桁数は維持されます(
01→02、099→100) - 複数の数値がある場合は一番右の数値の塊がインクリメント対象
- テンプレートは次回起動時に自動復元されます
バリデーション:
ファイル名に使用できない文字(\ / : * ? " < > | など)が含まれている場合、テキストボックスの枠が赤く表示され、保存ボタンが無効になります。
テキストボックスの自動幅調整:
テキストボックスの幅は入力内容に応じて自動的に広がります(最小 220px 〜 最大 260px の範囲)。
短いテンプレートは最小幅、長いテンプレートは最大幅に固定され、中間の長さではテキスト全体が収まる幅になります。
拡張子によって自動判定されます(既定は PNG)。
| 拡張子 | 形式 |
|---|---|
.png |
PNG |
.jpg / .jpeg |
JPEG |
.bmp |
BMP |
- 設定画面「保存設定」から保存先フォルダを指定できます
- 既定の保存先:
{MyPictures}\SaveEvidence({MyPictures}はピクチャフォルダへ展開されます) - 保存先フォルダが存在しない場合は赤枠でバリデーション表示されます
- 設定は自動保存され、次回起動時に復元されます
- 保存ボタンにマウスを乗せると、現在の保存先フォルダが ToolTip 表示されます
同名ファイルが存在する場合は上書き確認ダイアログが表示されます。
保存先フォルダの画像一覧を表示するページです(左ナビゲーション「フォルダビュー」)。
- サムネイル一覧表示: 画像ファイルのサムネイルを表示
- 3 種類の表示モード: 特大 / 大 / 中
- 行の高さ自動調整: 各行の高さはその行の最大アイテムの高さに応じて自動調整され、ファイル名の 1 文字目の高さ位置が各行内で揃います
- ソート機能: ファイル名の昇順・降順切替
- 表示モード・ソート順の保存: 選択中の表示モード(特大/大/中)とソート順(昇順/降順)は自動保存され、次回起動時に復元されます
- ダブルクリック: 既定のアプリケーションでファイルを開く
- ステータスバー: アイテム数・表示モード・ソート状態・フォルダパスを表示
左ナビゲーション「Undo 一覧」から、Undo / Redo 履歴と現在のプレビュー画像をサムネイル一覧で表示するページです。
- 表示順: 時系列順で「新しい → 古い」の固定(Redo → 現在 → Undo)
- 現在の画像の強調: 現在のキャプチャページに表示中の画像は青枠で強調表示
- 3 種類の表示モード: 特大 / 大 / 中(選択状態は自動保存・復元)
- ダブルクリック: 一時ファイルに保存し、OS の既定アプリケーション(外部ツール)で表示
- ステータスバー: アイテム数・表示モードを表示
設定画面「ホットキー設定」から各キャプチャタイプのホットキーを変更できます。
- 修飾キー:
Ctrl/Alt/Shift/Win(複数組合せ可) - テキストボックスにフォーカスして実際のキーボード入力で設定
- 設定内容はテキストボックスに表示されます
- 設定は自動保存され、次回起動時に復元されます
- ホットキーはメニューの「Capture」系項目の右側にも表示されます(設定と連動)
設定画面「外観設定」から以下の項目を変更できます。
| カテゴリ | 設定項目 |
|---|---|
| テーマ | ライト / ダーク / システム(OS の設定に追従) |
| 画像配置 | 中央寄せ / 左上寄せ(スクロール不要時は中央に配置) |
| 選択枠・暗転 | 選択枠の色・太さ(キャプチャ / 切り出し共通)、選択矩形の最小サイズ、暗転オーバーレイの色 |
| ドラッグハンドル・マーカー | ハンドルの色・サイズ・判定半径、マーカーの色・長さ |
| ルーペ | 枠色・枠の太さ、十字線色、選択矩形破線の色A/B、拡大率(4 ~ 32 倍)、サイズ(64 ~ 512)、カーソルからのオフセット |
| プレビューの市松模様 | プレビュー背景の色A/B・タイルサイズ |
| ラベル設定 | キャプチャ選択画面の左上ラベル(サイズ / 操作 / 情報)の表示・文字色・背景色・フォントサイズ、カーソル座標ラベル、ルーペ座標ラベル |
| フォルダビューアーアイコンサイズ | 特大 / 大 / 中 |
| 項目 | 要件 |
|---|---|
| OS | Windows 10(17763+)以降 |
| .NET ランタイム | .NET 10.0 以降 |
| アーキテクチャ | x64 |
公開ビルド(buildScript/publish_<UI>.bat)は、UI ごとに可能な方式を次の優先順で選びます(実装は buildScript/publish_ui.bat)。
| 優先 | 方式 | 中身 |
|---|---|---|
| 1 | Single AOT | マネージドコードを exe へネイティブコンパイル(自己完結・単一 exe + ネイティブ DLL) |
| 2 | Single | 自己完結ランタイムを 1 つの exe へ同梱(単一 exe) |
| 3 | EXE | 通常の発行(exe + DLL をフォルダーで配布) |
方式ごとの可否は UI とフレームワークが決めます(実測は buildScript/ の各スクリプトのコメントを参照)。 出力先は publish/<UI>-<RID>-<方式> で、方式がフォルダー名に現れます(期待する出力先は .github/release-config.json の uis[].output が単一所有します)。
- ネイティブライブラリ(OpenCvSharp・Avalonia の GL 実装等)は exe へ同梱できないため、同じフォルダーへ並べて配布します(方式 1 のとき)。
- 方式 2 は自己完結ランタイムを丸ごと含むため、配布物は方式 1 より大きくなります。
git clone https://github.com/tomokuni/SaveEvidence.git
cd SaveEvidence
# UI ごとの配布物を作る(方式は可能なものが自動で選ばれる)
cmd /c buildScript\publish_AvaloniaUI.bat
cmd /c buildScript\publish_MewUI.bat
cmd /c buildScript\publish_WinUI3.bat
cmd /c buildScript\publish_WinForms.bat出力先はスクリプトが表示します(publish/<UI>-win-x64-<方式>。 例: publish/avaloniaui-win-x64-single)。 リポジトリ外の一時領域へ発行してから必要なファイルだけを配置します(直接 -o で発行すると参照プロジェクトにも publish が作られます)。
単体のプロジェクトを直接発行する場合(方式を自分で選ぶ場合):
dotnet publish src/App.AvaloniaUI/src/App.AvaloniaUI.csproj -c Release -r win-x64 -p:PublishAot=true -p:SelfContained=true -o publish/avaloniaui-win-x64-aot検証は 1 コマンドで実行できます(ビルド・テスト・ドキュメント・配布物の起動をまとめて確かめます)。
pwsh -NoProfile -File buildScript/verify.ps1- 合否基準と手順は
.github/検証手順.mdが単一所有します(CI も同じスクリプトを Release 構成で実行します)。 - 配布物の起動と設定の往復は
buildScript/verifyPublish.ps1が検証します(publishを含むため数分かかります。 入力が前回と同一なら publish を省略します)。
配布物は UI ごとに実行ファイル名と構成が異なります(同じフォルダーの中身をまとめて配置してください)。
| UI | 実行ファイル | 構成 |
|---|---|---|
| MewUI 版 | SaveEvidence.MewUI.exe |
exe + ネイティブ DLL |
| Avalonia UI 版 | SaveEvidence.AvaloniaUI.exe |
exe 1 個(単一ファイル) |
| WinForms 版 | SaveEvidence.WinForms.exe |
exe 1 個(単一ファイル) |
| WinUI 3 版 | SaveEvidence.WinUI3.exe |
exe + DLL / .pri など(フォルダー単位で配置) |
4 つの UI は同じ設定ファイルとログを共有します(%LOCALAPPDATA%\SaveEvidence\settings.json と %LOCALAPPDATA%\SaveEvidence\logs\)。
1. アプリケーション起動
└── 使う UI の実行ファイルを実行(例: SaveEvidence.MewUI.exe)
└── 前回終了時のウィンドウ位置・サイズが復元
2. 画面キャプチャ
└── ツールバーのボタンまたはグローバルホットキーでキャプチャ開始
└── キャプチャ中はメインウィンドウが非表示(設定で切替可能)
└── Esc キーでキャンセル
3. 画像の確認と編集
└── キャプチャした画像がプレビューエリアに表示
└── マウスホイール Ctrl+ でズーム調整
└── 必要に応じて切り出しや自動ウィンドウ検出を実行
4. 画像の保存
└── ファイル名テンプレートを確認・編集
└── 「保存」ボタンまたは Ctrl+S で保存
└── 保存後にファイル名の数値が自動インクリメント
┌─────────────┬────────────────────────────────────┐
│ ナビパネル │ タイトルバー(☰ メニュー) │
│ (左) ├────────────────────────────────────┤
│ キャプチャ │ ツールバー │
│ フォルダビュー│ [☰] [保存] [キャプチャ3種] [切出] │
│ Undo 一覧 │ ズーム: [⊖] [スライダ] [⊕] [Fit] [▼ 自動]│
│ 設定 │ │
│ ├────────────────────────────────────┤
│ │ │
│ │ プレビューエリア │
│ │ │
│ ├────────────────────────────────────┤
│ │ ステータスバー(ポインタ座標 / 画像サイズ / ズーム)│
└─────────────┴────────────────────────────────────┘
- 左ナビゲーションでページを切り替えます(キャプチャ / フォルダビュー / Undo 一覧 / 設定)
- 左上の ☰(ハンバーガー)からメニュー(保存 / コピー / 貼り付け / 元に戻す / やり直し / キャプチャ 3 種 / 切り出し / 自動切り出し)を開けます
- ナビパネル上部のトグルボタンでナビパネルを開閉できます(アイコンのみに収納)
| モード | 操作方法 |
|---|---|
| スクリーン選択 | マウス移動でハイライトされるスクリーンをクリックして確定 |
| ウィンドウ選択 | マウス移動で自動検出されるウィンドウをクリックして確定 |
| 範囲選択 | マウスドラッグで矩形を描画し、ボタンを離して確定 |
| ショートカット | 機能 |
|---|---|
Ctrl + Shift + Q |
スクリーン選択キャプチャ(グローバルホットキー・設定で変更可能) |
Ctrl + Shift + W |
ウィンドウ選択キャプチャ(グローバルホットキー・設定で変更可能) |
Ctrl + Shift + E |
範囲選択キャプチャ(グローバルホットキー・設定で変更可能) |
Ctrl + S |
画像を保存 |
Ctrl + C |
画像をクリップボードにコピー |
Ctrl + V |
クリップボードから画像を貼り付け |
Ctrl + Z |
アンドゥ(切り出し操作を元に戻す) |
Ctrl + Y |
リドゥ(元に戻すを取り消す) |
Ctrl + R |
切り出し |
Ctrl + マウスホイール |
ズーム(拡大/縮小) |
Shift + マウスホイール |
水平スクロール |
Esc |
キャプチャ中:キャンセル |
Ctrl + +/- |
ズームイン/アウト |
設定は以下のパスに JSON 形式で保存されます。
%LOCALAPPDATA%\SaveEvidence\settings.json
例:
{
"SelectScreenHotKey": { "Modifiers": "Control, Shift", "Key": "Q" },
"WindowSelectHotKey": { "Modifiers": "Control, Shift", "Key": "W" },
"AreaSelectHotKey": { "Modifiers": "Control, Shift", "Key": "E" },
"FileNameTemplate": "screenshot_007_{date}-{time}.png",
"SaveFolderPath": "{MyPictures}\\SaveEvidence",
"ThemeMode": "System",
"LoupeZoomLevel": 4,
"LoupeSize": 160,
"HideMainWindowOnCapture": true
}保存される設定項目:
- テーマモード(
Light/Dark/System。 System は OS の設定に追従) - 各キャプチャタイプのグローバルホットキー
- ファイル名テンプレート文字列
- 保存先フォルダパス(
{MyPictures}プレースホルダ対応) - ウィンドウ位置・サイズ・状態・ナビパネル開閉状態
- 外観設定(選択枠・暗転・ハンドル・マーカー・ルーペ・プレビューの市松模様・ラベル。 色は
#AARRGGBB形式) - フォルダビューの表示モード・ソート順、Undo 一覧の表示モード
SaveEvidence は、Avalonia UI 上で CommunityToolkit.Mvvm を使用した MVVM アーキテクチャを採用しています。
┌──────────────────────────────────────────┐
│ View(Window) │
│ MainWindow │
│ CapturePage / FolderViewPage │
│ UndoPage / SettingsPage │
└────────────────┬─────────────────────────┘
│ DataBindings & Events
┌────────────────▼─────────────────────────┐
│ ViewModel │
│ MainViewModel / FolderViewViewModel │
│ UndoViewModel │
└────────────────┬─────────────────────────┘
│
┌────────────────▼─────────────────────────┐
│ Model & Service │
│ UndoHistory / Settings / SettingsService │
│ FileNameTemplate / CaptureSessionControl(外部) │
└──────────────────────────────────────────┘
キャプチャ・切り出し画面のコントロールは、UI 非依存のコアを Avalonia / MewUI / WinUI 3 / WinForms で共有する層構成(Core / 提示層(Presenter) / UI)を採っています。 層の依存の向きと「どこに何を置くか」は src/README.md を参照してください。
| 問題 | 原因と対処 |
|---|---|
| ホットキーが反応しない | 他のアプリケーションが同じホットキーを使用している可能性があります。 設定画面から別のキー組合せに変更してください。 |
| 設定ファイルが壊れた | %LOCALAPPDATA%\SaveEvidence\settings.json を削除してアプリを再起動すると、デフォルト設定で再作成されます。 |
| 文書 | 役割 | 場所 |
|---|---|---|
README.md |
利用仕様書(何ができるか・使い方・拡張) | 各プロジェクト直下 |
docs/SPEC_API.md |
API リファレンス(公開型・メンバー・使用例) | 各プロジェクトの docs/ |
docs/SPEC_System.md |
システム仕様書(アーキテクチャ・依存・設計判断) | 各プロジェクトの docs/ |
CHANGELOG.md |
変更履歴(利用者に影響する変更。 版は人が決める) | リポジトリ直下 |
リポジトリ全体の層構成は src/README.md を参照してください。
GitHub が README に求めるのは次の 5 項目です。
| # | 項目 |
|---|---|
| 1 | プロジェクトが何をするか |
| 2 | なぜ有用か |
| 3 | ユーザーがどう始めるか |
| 4 | どこで助けを得るか |
| 5 | 誰が保守・貢献するか |
読み手が最初の 1 画面で「何か / 自分に必要か / どう動かすか」を判断できることを優先します。 全体はスクロール 3〜5 画面を目安とし、超える内容は docs/ へ分離します。
モノレポでは、リポジトリ直下の README は索引(全体像とどこに何があるか)に徹し、詳細は各プロジェクトの README へ置きます(同じ内容を 2 箇所に書かない)。
| 文書 | 書く | 書かない |
|---|---|---|
README.md |
概要・使い方(最小例)・含まれるものの要約・依存・カスタマイズ(差し替え方法)・ビルド/テスト・ドキュメントへのリンク | メンバー単位の API 仕様・内部構造と設計判断・改変の経緯 |
docs/SPEC_API.md |
名前空間と型の一覧・型ごとのメンバー(シグネチャと説明)・使用例・API の制限事項 | 内部実装の詳細(キャッシュ方式・内部クラス構成等) |
docs/SPEC_System.md |
アーキテクチャ・依存方向・コンポーネント構成・単一所有・可視性ポリシー・設計判断・ログ・テスト方針 | メンバー単位の API 仕様 |
コード変更時は 3 文書を同時に更新します(仕様と実装の乖離を防ぐため)。