SANE を使うには下記の ftp ディレクトリから最新バージョンのディストリビュー ションを入手します。
ftp://ftp.mostang.com/pub/sane/SANE に付いてくるグラフィカル・ユーザインタフェースをビルドしたいなら、 GIMP あるいは最低限でも GTK を入手、ビルド、インストールする必要があります。 GIMP と GTK はいずれも
ftp://ftp.gimp.org/
から入手します。GTK は元々 GIMP 用に開発されたユーザインタフェースのツール キットですが、今では SANE を含む他の多くのプロジェクトに採用されています。 SANE ディストリビューションは GIMP/GTK ライブラリが無くてもうまくビルドでき ます。しかし、その場合グラフィカル・ユーザインタフェース・プログラムは何ひと つビルドされず、多くの楽しみが奪われてしまいます。従ってサーバ用のみに SANE をビルドするのでなければ、最低でも GTK (GIMPではなく) をインストール することを勧めます。SANE ディストリビューションを入手したら圧縮されている tar ファイルを展開し、 README ファイルの内容に従って下さい。README は SANE をビルドし、インストール する方法を説明しています。また PROBLEMS というファイルにも目を通して下さい。 これには既知の問題点と、するべきことのリストがあります。
SANE を動作させるためにスキャナやカメラが必須ではないことに注意して下さい。 SANE ディストリビューションには、PNM (portable `anymap')ファイルを読むこと によりスキャナをシミュレートする仮想ドライバが入っています。また、SANE は Linux に限定されません。Linux Alpha, Linux x86, Linux m68k 以外にも AIX, Digital Unix, FreeBSD, HP-UX, IRIX, NetBSD, SCO, Solaris, SunOS また OS/2 でも動作します。
SANE をインストールしたら下記のコマンドを入力してみましょう。
scanimage --list-devices
すると以下のように出力される筈です。
device `mustek:/dev/scanner' is a Mustek MFC-06000CZ flatbed scanner
device `pnm:0' is a Noname PNM file reader virtual device
device `pnm:1' is a Noname PNM file reader virtual deviceこの例では Mustek のスキャナは mustek:/dev/scanner という名前で利用可能で あり、また pnm:0 と pnm:1 という PNM ファイルを読むために使う 2 つの仮想 デバイスも利用できることを、このリストは表しています。個別のデバイスの全 てのオプションを表示するには、例えば pnm:0 の場合、次のようにします。
scanimage --device pnm:0 --help
こうすると図1 のようなヘルプメッセージが出ます。
Usage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device -h, --help display this help message and exit -L, --list-devices show available scanner devices -v, --verbose give even more status messages -V, --version print version information Options specific to device `pnm': Source Selection: --filename <\<>string> [/tmp/input.ppm] The filename of the image to be loaded. Image Enhancement: --brightness -100...100% [0] Controls the brightness of the acquired image. --contrast -100...100% [0] Controls the contrast of the acquired image. --grayify[=(yes|no)] [no] Load the image as grayscale. --three-pass[=(yes|no)] [no] Simulate a three-pass scanner by returning 3 separate frames. For kicks, it returns green, then blue, then red. --hand-scanner[=(yes|no)] [no] Simulate a hand-scanner. Hand-scanners often do not know the image height a priori. Instead, they return a height of -1. Setting this option allows one to test whether a front end can handle this correctly. --default-enhancements Set default values for enhancement controls (brightness & contrast). Figure 1: Scanimage Help Message For pnm:0 Pseudo-Device 図1: pnm:0 仮想デバイス用 scanimage のヘルプメッセージ
SANE パッケージには、Scanimage プログラムの使い方を説明した詳細なマニュアル ページが付いてきます。例として input.ppm という名前の PPM ファイルを想定しま す。下記のコマンドで、この画像を「スキャン」し、かつ明るさを 50%増加 させることができます。
scanimage --device pnm --brightness 50 input.ppm > output.ppm
xv のような画像ビューワで output.ppm ファイルを見ると、output.ppm が著しく 明るくなっていることが分かるでしょう。
あなたはこう言うかもしれません − 「すごい。だけどグラフィカル・ユーザイン タフェースはないの?」。SANE をビルドした時点で GTK ライブラリがインストー ル済みであれば、xscanimage というプログラムを呼び出すことができます。 これは、利用可能なデバイス一覧のダイアログボックスを表示します。`pnm:0' を ダブルクリックすると図 2 に示すダイアログが表示されます。
<< 図2: SANE ダイアログウィンドウ >>
ご覧のようにダイアログには 2 つの `Filename' というテキスト入力ボックスと `Brightness' というスライダがあります。最初のテキスト入力ボックスに output.ppm , 2 つ目のボックスに input.ppm と入力し、Brightness のスライダを 50.0 に移動させてから左下の Scan ボタンを押すと、前述のコマンドラインで 実行した scanimage と同じ結果が得られます。もちろん本番のスキャンをす る前に、右下の Preview ボタンを押してプレビュー・ウィンドウ(図3) を表示 させることもできます。
<< 図3: SANE プレビュー・ウィンドウ >>
プレビュー・ウィンドウでは、 Acquire -> Preview ボタンを押すとスキャン 本番の画像を低解像度でプレビュー表示できます。例えば、Brightness スライダ を操作すると、画像の明るさがどのように影響されるかが分かります。スライダ を動かしてから Acquire Preview ボタンを押すとプレビュー表示が更新されます。
スキャナやカメラで画像をスキャンする際、様々な方法の画像補正をしたいことが よくあります(例えば画像をシャープにするなど)。xscanimage プログラムは幸いに も GIMP の拡張として実行させることができます。このようにするには、GIMP の plug-ins ディレクトリから xscanimage のバイナリにシンボリックリンクを張る だけです。SANE をインストールしたディレクトリがデフォルトと同じだとすると、 下記のコマンドでシンボリックリンクを張れます。
ln -s /usr/local/bin/xscanimage ~/.gimp/plug-ins
シンボリックリンクを張ると、 GIMP の次回起動時から xscanimage は `Xtns' (拡張) メニューに組み込まれます。これは `Xtns -> Acquire' そして 'Image -> pnm:0' で PNM 仮想デバイスを選択することにより起動できるよ うになります。この方法で起動する場合、Scan ボタンを押して新しくスキャン した画像は(ディスクにセーブするかわりに) GIMP ウィンドウの内側に置かれま す。これで、通常の GIMP の画像処理機能を、取り込んだ画像をセーブする前の 補正に使えるようになります。
この PNM 仮想デバイスはちょっと変に見えるかもしれませんが、本物のスキャナ インターフェースはどのように見えるのでしょうか? 図 4 は、Mustek フラットベッド・スキャナでの xscanimage ダイアログです。 この図は、xscanimage の他の機能:ツールチップ(バルーンヘルプとも言う)の デモンストレーションも行っています。ツールチップがあれば、新規ユーザがスキ ャナやカメラの能力を理解しやすくなります。図の中で、マウスは Scan Source メニューを指し、その結果このメニューのヘルプ情報がマウスポインタの下の黄色 い箱の中に表示されています。ツールチップは新規ユーザには便利ですが、しばら くすると自分なりの方法でやりたくなります。そこで xscanimage は上級者向けに Preferences サブメニューでツールチップを出さないようにすることもできます。
<< 図4:xscanimage での Mustek ダイアログウィンドウ >>
ご覧のように Mustek ダイアログは PNM 仮想デバイスインタフェースとはかなり 異なるように見えます。これは元になるデバイスが異なる能力を持っているから です。デバイスダイアログは、選択されたデバイスに依存するだけでなく、デバ イスのモードにも依存します。例えばダイアログの下の方にある `Use custom gamma table' オプションをオンにするとインタフェースが変更され、結果として 図 5 のようになります。ご覧のようにダイアログの右半分はグラフエディタに なり、輝度と RGB のガンマテーブルを変更できます。言い換えれば xscanimage は アクティブな、または与えられたスキャンモードでの重要なオプションを正確に表示 するので、ユーザが混乱しにくくなります。
<< 図5:ガンマテーブルエディタ付き Mustek ダイアログ >>
図の右半分にある画像の輝度ガンマテーブルを見ると、xscanimage を起動する度 にガンマテーブルを定義していたら、むしろいらいらするのではないかと思うかも しれません。理想的なテーブルが見つかって、もしそれらをセーブすることができ るなら素晴らしいですね。このために、xscanimage は Preferences サブメニュー の項目で現在のデバイス設定をセーブできます。セーブしておけば xscanimage を 起動する度に、そのデバイスで最後にセーブされたオプションが自動的に読み込ま れます。