次のページ 前のページ 目次へ

1. はじめに

Linux で画像をスキャンしたいと思ったことはありませんか? もしそうなら、たぶん スキャナドライバパッケージの多さに当惑するかもしれません。 これを書いている時点で、少なくとも 14 の Linux 用スキャナドライバパッケージが 存在します。個々のパッケージは高品質ではあるものの、どのドライバパッケージを どのスキャナに使えばよいのか分からないことがよくあります。 おまけに、あるパッケージはコマンドライン・インタフェース、別のは tcl/tk ベー スのグラフィカル・フロントエンドがある、さらに完全武装のグラフィカル・フロン トエンドを持ったものもあるという具合です。バラエティは生活を豊かにするとは 言うものの、この場合はかなり大きな頭痛の種です。

SANE はこのジレンマを解決するために作られました。基本的なアイデアは単純です。 つまり、汎用的でよく出来た API(Application Programming Interface) があれば、 スキャナドライバから独立したアプリケーションを書くのは容易です。 従って、新しいスキャナドライバの作者は、ドライバ用のアプリケーションを書く ことを心配しなくてよいのです。さらにアプリケーション・プログラマにとっても SANE は汎用的なので、いずれは制御されるであろうデバイス と独立してアプリケーションを書くことが出来るという利点があるのです。

10 の異なるデバイスをサポートするために、5つのアプリケーションが欲しいと します。古いアプローチでは、5×10=50 で 50 ものプログラムを書かなければ なりません。SANE では 5+10=15 で 15 のプログラムを書くだけでよいのです。 SANE はユーザにもメリットがあります。ユーザは自分が最も気に入ったアプリ ケーションを選択する自由が得られ、それをユーザがアクセス可能な全ての画像取込み デバイスを制御するために使用できます。つまり SANE は、使用中の特定のデバ イスに一貫したインタフェース独立性を与えてくれるのです。

もちろん SANE がこのような汎用インタフェースの最初の試みではありません。 TWAIN, PINT, Linux hand-scanner というインタフェースを耳にしたことがあるかも しれません。問題なのは,これらの古いインタフェースには、アプリケーションから デバイスへの(またはその逆の)インタフェースが不足していることです。 例えば、PINT は本当にいくぶん原始的なカーネルレベルのインタフェースであり、 hand-scanner インタフェースは文字どおりハンドスキャナに限定されています。 対照的に SANE はラスター画像を取り込むデバイスをサポートするのに一般には充分 です。SANE に最も近いのは、たぶん TWAIN です。

SANE と TWAIN の韻は偶然の一致ではないことは事実ですが、それは別の話です。 TWAIN が SANE ではない主な理由は、TWAIN がアプリケーションに代わってドライバ の中にデバイスを制御するためのグラフィカル・ユーザインタフェースを置くことで す。これは スキャナが動作しているマシンとは別のマシンでアプリケーションが動 いているといった Linux またはネットワーク環境には適していません。SANE はこれ と対照的に、実際のドライバとそれを制御するアプリケーションの厳密な分離を強要 します。実際、現在の SANE ディストリビューションにはネットワーク経由でのスキャ ンがサポートされています。


次のページ 前のページ 目次へ