1.はじめに
自炊(本のスキャン)向けスキャナ設定の記事にちょこっと記述した自作画像ビューアです。Windows用です。
多機能ではないので、画像を表示したり読書をしたりする場合には、他の有名な画像ビューアのほうがお勧めです。
このビューアには、スキャン支援機能をいくつか盛り込んでいます。
一度表示した画像をすばやく再度表示するために、あえて読み込んだ画像データを開放していないため、非常にメモリを使用します。
2.バイナリ
画像ビューア
ImageTest1_20200422.zip
追加ツール ※スキャン支援用です。画像表示のみの場合には不要です。
ScanTool_20200422.zip
どちらもフリーウェアとします。無保証です。
3.ソース
Visual Studio 2019でビルド可能です。ソースは汚いです。
4.動作環境
.NET Framework 4.7.2以上。
Windows 10 April 2018 Update以上であればインストールされています。32ビットWindows、64ビットWindowsどちらも対応(64ビット優先)していますが、動作確認は64ビットWindowsのみで行っています。
5.事前準備
画像ビューアのみを使用する場合には、事前にインストールするソフトはありません。
追加ツールを使用する場合には、下記1点が必要です。
- AutoHotKeyのインストールと、ahkファイルの関連付け
6.インストール方法
ファイル配置例:
C:\tools\ImageTest1\ImageTest1.exe
C:\tools\ImageTest1\ImageTest1.exe.config
以下オプション:
C:\tools\RenScan.bat
C:\tools\RenScan.ps1
C:\tools\ScanClick.ahk
ImageTest1.exeとImageTest1.exe.configは任意のフォルダに配置可能です。同じフォルダに置いて下さい。
追加ツール(RenScan.bat、RenScan.ps1、ScanClick.ahk)の置き場所を変更する場合には、ImageTest1.exe.configの該当箇所とRenScan.bat内のパスを書き換えて下さい。
exe実行時に警告が表示される場合は、プロパティからブロックの解除を行って下さい。
7.使用方法
ImageTest1 [オプション] 画像ファイル名|ディレクトリ名|zipファイル名
オプション: (-または/から始まる。大文字小文字区別あり)
-p1 1画面モード(デフォルト)
-p2 見開きモード。縦長画像を見開き、それ以外(横長と正方形)を1画面で表示します。
-p3 3画面モード。-wmと同時に使用して下さい。
-wm ディレクトリフルパス ディレクトリ監視モード。スキャンアプリケーションの保存先フォルダを指定して下さい。ファイルが増えると表示を更新します。
-sfa ファイル名昇順 ※zipファイルは対象外
-sfd ファイル名降順 ※zipファイルは対象外
-sta 更新日時昇順 ※zipファイルは対象外
-std 更新日時降順 ※zipファイルは対象外
-snN 指定した画面に表示(N=画面番号 0~) ※フルスクリーンモードのみ
-plN プリロード数(N=プリロード数 0~) ※あまり使用をお勧めしない
-mtN プリロード時の最大スレッド数(N=最大スレッド数 1~) ※あまり使用をお勧めしない
-imN 拡大時のアルゴリズム(N=.NETのInterpolationMode列挙型の値 0~)
-bN ボーダー表示(N=ボーダー幅) ※赤枠表示
-bnN バッファ数 ※正常動作しない
-spn ページ番号表示 ※1画面モードと見開きモードのみ。3画面モードでは無視される。
使用例:
ImageTest1 C:\image\image1.jpg
C:\image\image1.jpgを表示します。
ImageTest1 C:\image
C:\imageの先頭ファイルを表示します。
ImageTest1 -p2 -spn C:\book\book1.zip
C:\book\book1.zipを見開きモード、ページ番号表示ありで表示します。
ImageTest1 -p3 -b2 -wm C:\scan
3画面モードでC:\scanを監視します。ボーダー幅2でボーダーを表示します。
8.ImageTest1.exe.config
記述中。
ScreenInfoAuto
1の場合、モニタ情報を自動取得し、フルスクリーン時にShift+←、→でモニタを切り替えます(モニタ座標に合わせた移動ではなくループします)。0を指定すると、下記6項目でモニタ情報を設定します。モニタの物理配置に合わせた定義が可能です。
NumberOfScreen 例:3 ※画面数
ScreenInfomations 例:0, 0, 1920, 1080 / 1920, 0, 1920, 1080 / -1920, 0, 1920, 1080 ※解像度
LeftDestinations 例:2, 0, 1 ※Shift+←押下時の移動先画面。-1で無効。
RightDestinations 例:1, 2, 0 ※Shift+→押下時の移動先画面。-1で無効。
UpDestinations 例:-1, -1, -1 ※Shift+↑押下時の移動先画面。-1で無効。
DownDestinations 例:-1, -1, -1 ※Shift+↓押下時の移動先画面。-1で無効。
ResizeList
HorizontallyLongScreen
VerticallyLongScreen
Maximize
MoveValueSmall
MoveValueLarge
CommandLine
MaxThreads
InterpolationMode
BufferNumber
9.キー操作
記述中。
ImageTest1.exe.configの設定を変更していない場合のキー操作です。
1つ前の画像:↑、→、q ※↑、→はフルスクリーン表示のみ
1つ次の画像:↓、←、a ※↓、←はフルスクリーン表示のみ
10個前の画像:PageUp
10個次の画像:PageDown
先頭画像:Home
最終画像:End
左回転:d
右回転:f
原寸表示/フルスクリーン表示切り替え:x
拡大:+ ※原寸表示のみ
縮小:- ※原寸表示のみ
1ピクセル移動:↑、↓、←、→ ※原寸表示のみ
32ピクセル移動:Shift+↑、↓、←、→ ※原寸表示のみ
指定モニタに移動:Shift+↑、↓、←、→ ※フルスクリーン表示のみ
短辺を画面幅に合わせて表示する/戻す:z ※フルスクリーン表示のみ
ファイル名昇順:Shift+F1 ※zipファイルは対象外
ファイル名降順:Shift+F2 ※zipファイルは対象外
更新日時昇順:Shift+F3 ※zipファイルは対象外
更新日時昇順:Shift+F4 ※zipファイルは対象外
ページ番号増加:]
ページ番号減少:[
フルパスファイル名コピー:Shift+C
ファイルコピー:Ctrl+C
エクスプローラ起動:Shift+Enter
コマンド1起動:Enter ※ScanClick
コマンド2起動:Shift+F12 ※RenScan
再読み込み:F5 ※見開き、3画面の場合には左端画像のみ
見開き/1画面モード切り替え:フルキー1 ※見開きモードのみ
指定ディレクトリへコピー1~9:テンキー1~9 ※保存先フォルダはImageTest1.exe.configで指定。zipファイルの場合は正常動作しない。
終了:Esc
Ctrl+ホイール:拡大縮小 ※原寸表示のみ
ScrollLock:ONの場合は、横長画像はHorizontallyLongScreenのモニタに、縦長画像はVerticallyLongScreenのモニタに表示します。このキーはコンフィグ不可です。
10.動作説明
10-1.1画面モード
1画像を表示します。
10-2.見開きモード
縦長画像を見開き、それ以外(横長と正方形)を1画面で表示します。縦長画像は表裏2ページ続くものとして、最初の1ページや縦長画像以外の直後は左側に片面表示し、最後の1ページが余る場合や縦長画像以外の直前は右側に片面表示します。
カレントページは左側となります。最後の1ページを右側に表示する場合はそのページがカレントとなります。
10-3.3画面モード、監視モード
1画面の中に3ページを横に並べて表示します。監視モードと合わせて使用して、BTScan等のスキャンアプリケーションの画像保存先フォルダを監視し、画像が追加された時に最新の(ファイル名が辞書順で大きい)3画像を表示します。これにより、最新画像が奇数ページの場合には右側2ページが見開き、偶数ページの場合には左側2ページが見開きとなり、スキャン中に見開き画像のチェックが可能となります。
画像を追加するまでは画面は真っ暗のままです。
カレントページは一番左側となります。
10-4.フルスクリーン表示
画面サイズに合わせて表示します。
10-5.原寸表示
画像を原寸で表示します。拡大縮小が可能です。
10-6.ページ番号表示
ページ抜けチェック用です。
11.追加ツール
11-1.RenScan
ImageTest1のShift+F12で起動します。
指定画像以降のファイルを、スキャンフォルダのファイルと差し替えます。元のファイルはRenScan.ps1内で指定している保存先に移動します。
※zipファイル表示中に使用しないで下さい。
※スキャンフォルダで使用しないで下さい。ループしておかしくなります。
11-2.ScanClick
ImageTest1のEnterキー押下で起動します。
下記のスキャナのスキャン開始ボタンまたはエラーダイアログの続行ボタンを押下します。スキャナダイアログが開いていない場合は、BTScan(3.07)の入力開始ボタンをクリックしてからスキャン開始ボタンを押下します。
- Canon DR-9080C
- 富士通スキャナ(fi-6130、fi-5900Cで確認) ※32ビットアプリケーションからの起動の場合のみ
- EPSON ES-9000H(スキャン開始ボタンでなくプレビューボタンを押下します)
12.その他
記述中が多くてすみませんが、ぼちぼち追記していきます。
機能追加の要望はすみませんが受けられません。