#1. はじめに
TwainDotNetによるスキャン - Qiitaを元に、TwainDotNetが内部で32ビットBitmapを作成する部分を24ビット以下にも対応 - Qiitaを組み合わせて、スキャンアプリケーションを作成しました。Windows用です。
BMPとPNGで保存可能です。
BTScanを参考にして、その機能の一部を作成しています。PNGの保存は.NET標準機能で行っていますが、ファイルサイズはBTScanの圧縮率0(低い)よりも小さくなりました。(自分が試したグレースケール画像で約1/2~1/3。BTScanでも圧縮率を上げたら同じくらいになるのでしょうけれども)
このアプリケーションにはスキャン画像の表示機能はありませんが、画像ビューア ImageTest1 - Qiitaを監視モードで起動しておけば、リアルタイムに表示確認が可能です。
#2. バイナリ
フリーウェアとします。無保証です。
#3. ソース
C#で記述しています。Visual Studio 2019でビルド可能です。
TwainDotNetを使用しています。32ビット以外の画像に対応するため、いくつかのクラスをコピーして書き換えて使用しています。
#4. 動作環境
.NET Framework 4.7.2以上+.NET Framework 3.5以上。
.NET Framework 4.7.2以上はWindows 10 April 2018 Update(1803)以上であればインストールされています。
ソースからリビルドすればおそらく.NET Framework 2.0以上くらいまで落とすことができます。
TwainDotNetが.NET Framework 3.5向けのため、おそらく.NET Framework 3.5以上も必要です。
32ビットアプリケーションです。
Windows 10 64ビット版で動作確認をしています。
#5. 既知の問題
- 大きな原稿をスキャンした時にたまにファイルが作られずにスキャナダイアログが閉じる(メモリ不足?)。ITScanを立ち上げ直すまで復旧しない。→ITScan 1.06でメモリ使用量を減らして緩和しました。B5本の表紙カバー(折返しありでB4超えの大きさ)を24ビットカラーでスキャンした場合に、内部のBitmap作成で必ずエラーになっていたのが、発生しなくなりました。
- 1.06:回転設定を起動時に反映させず、90/180/270を設定していても0度になります。起動後に90/180/270を再度設定して回避して下さい。
#6. 気になる点
- スキャンが終わったらスキャナのダイアログが閉じてしまいます。TwainDotNet自体の動作のようです。BTScanのようにスキャナのダイアログを開いたままにする方法はないものか…。→ITScan 1.04で対応しました。
- JPEGに対応していないのは、JPEGの品質指定のUIを作るのを面倒がっているからです。
- ImageTest1の監視モードと併用すると、ImageTest1側で頻繁に読み込み失敗が表示されます。ImageTest1側での対処を検討中です。→ImageTest1 1.13 20200522で対応しました。
#7. 更新履歴
2022/01/03 1.08
- Canonの新しいドライバでスキャナエラー時に操作できなくなるのを修正。
2020/12/26 1.07
- 設定画面追加。回転設定(0/90/180/270度)追加。
- 1.06のzipにTwainDotNetを入れ忘れていたのを修正。
2020/11/07 1.06
- メモリ使用量を削減して、大きな原稿をスキャンした時にファイルが作られずにスキャナダイアログが閉じる問題を緩和。
2020/05/24 1.05
- スキャン画像の転送中にキャンセルを行うとフォームがdisableのままで操作不能になるのを修正。
2020/05/23 1.04
- スキャンが終わってもスキャナのダイアログを閉じないように変更。
2020/05/22 1.03
- TwainDotNetから返却されたBitmapの解放処理を追加。これにより、数ページ~十数ページ程度(スキャナや取り込みサイズによる)で連続スキャンが止まり、途中までしかファイルが保存されないのを修正。
2020/05/22 1.02
- TwainDotNetのビット数判定を厳密に変更。(24ビット以下→32ビット以外(64ビットを含む)、8ビット以下→24ビット未満)
- アクセス・キーを追加。
- カウンタの初期値を0から1に変更。
- TwainDotNetにADFを使用するフラグのセットを削除。1.00と同じ動作に戻した。
2020/05/20 1.01
- 24ビットカラーの場合に32ビットで保存していたのを24ビットに変更。
- TwainDotNetにADFを使用するフラグをセット(特に動作が変わっているように見えない)。→フラットベッドとADFの両方があるスキャナの場合に、毎回ADFになりそうなので、次回アップデートで削除予定。
2020/05/19 1.00
- 初版。