2003-09-23 11:37:19 +00:00
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<title>SANE - Introduction</title>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
|
|
<meta name="author" content="Henning Meier-Geinitz">
|
|
|
|
<meta name="keywords" content="sane, scanner, introduction, description, overview">
|
|
|
|
<meta name="description" content="Introduction into SANE">
|
|
|
|
<link href="mailto:hmg-guest@users.alioth.debian.org" rev="made">
|
|
|
|
<link rel="icon" href="favicon.ico" type="image/x-icon">
|
|
|
|
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body bgcolor="#FFFFFF" text="#000000">
|
|
|
|
<center>
|
|
|
|
<a href="http://www.sane-project.org" target="_top"><img
|
|
|
|
src="images/sane.png"
|
|
|
|
alt="SANE" width="346" height="117" border="0"></a>
|
|
|
|
</center>
|
|
|
|
|
|
|
|
|
|
|
|
<center>
|
|
|
|
<h1>SANE - Introduction</h1>
|
|
|
|
</center>
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
<p>
|
2003-09-23 19:44:12 +00:00
|
|
|
<em>SANE</em> stands for "Scanner Access Now Easy" and is an application programming interface
|
|
|
|
(API) that provides standardized access to any raster image scanner hardware (flatbed scanner,
|
|
|
|
hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The <a href="html/">SANE
|
|
|
|
API</a> is public domain and its discussion and development is open to everybody. The current
|
|
|
|
source code is written for UNIX (including GNU/Linux) and is available under the GNU General
|
|
|
|
Public License (the <em>SANE</em> API is available to proprietary applications and backends as
|
2003-09-23 20:37:28 +00:00
|
|
|
well, however). More details about the license can be found on <a href="license.html">our
|
2003-09-23 19:44:12 +00:00
|
|
|
license page</a>. <a href="sane-support.html">Ports to MacOS X, OS/2 and Microsoft Windows</a>
|
|
|
|
are either already done or in progress.
|
2003-09-23 11:37:19 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<em>SANE</em> is a universal scanner interface. The value of such a
|
|
|
|
universal interface is that it allows writing just one driver per image
|
|
|
|
acquisition device rather than one driver for each device and
|
|
|
|
application. So, if you have three applications and four devices,
|
|
|
|
traditionally you'd have had to write 12 different programs. With
|
|
|
|
<em>SANE</em>, this number is reduced to seven: the three applications
|
|
|
|
plus the four drivers. Of course, the savings get even bigger as more
|
|
|
|
and more drivers and/or applications are added.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Not only does <em>SANE</em> reduce development time and code duplication,
|
|
|
|
it also raises the level at which applications can work. As such, it
|
|
|
|
will enable applications that were previously unheard of in the UNIX
|
|
|
|
world. While <em>SANE</em> is primarily targeted at a UNIX environment, the
|
|
|
|
standard has been carefully designed to make it possible to implement
|
|
|
|
the API on virtually any hardware or operating system.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
While <em>SANE</em> is an acronym for “Scanner Access Now
|
|
|
|
Easy” the hope is of course that <em>SANE</em> is indeed sane in
|
|
|
|
the sense that it will allow easy implementation of the API while
|
|
|
|
accommodating all features required by today's scanner hardware and
|
|
|
|
applications. Specifically, <em>SANE</em> should be broad enough to
|
|
|
|
accommodate devices such as scanners, digital still and video cameras,
|
|
|
|
as well as virtual devices like image file filters.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
2003-09-23 18:39:45 +00:00
|
|
|
If you're familiar with <a href="http://www.twain.org/"
|
|
|
|
target="_top">TWAIN</a>, you may wonder why there is a need for
|
|
|
|
<em>SANE</em>. Simply put, TWAIN does not separate the user-interface
|
|
|
|
from the driver of a device. This, unfortunately, makes it difficult,
|
|
|
|
if not impossible, to provide network transparent access to image
|
|
|
|
acquisition devices (which is useful if you have a LAN full of machines,
|
|
|
|
but scanners connected to only one or two machines; it's obviously also
|
|
|
|
useful for remote-controlled cameras and such). It also means that any
|
|
|
|
particular TWAIN driver is pretty much married to a particular GUI API
|
|
|
|
(be it Win32 or the Mac API). In contrast, <em>SANE</em> cleanly
|
|
|
|
separates device controls from their representation in a user-interface.
|
|
|
|
As a result, <em>SANE</em> has no difficulty supporting command-line
|
|
|
|
driven interfaces or network-transparent scanning. For these reasons,
|
|
|
|
it is unlikely that there will ever be a <em>SANE</em> backend that can
|
|
|
|
talk to a TWAIN driver. The converse is no problem though: it is pretty
|
|
|
|
straight forward to access <em>SANE</em> devices through a TWAIN source.
|
|
|
|
In summary, if TWAIN had been just a little better designed, there would
|
2003-09-23 11:37:19 +00:00
|
|
|
have been no reason for <em>SANE</em> to exist, but things being the way
|
|
|
|
they are, TWAIN simply isn't <em>SANE</em>.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
<p>
|
2003-09-23 18:39:45 +00:00
|
|
|
<a href="/">SANE homepage</a><br>
|
|
|
|
<a href="imprint.html">Contact</a>
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<font size="-1">$Date$ $Author$</font>
|
2003-09-23 11:37:19 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|