Scanner Access Now Easy (SANE) is an
application programming interfaceAn application programming interface is an interface in computer science that defines the ways by which an application program may request services from libraries and/or operating systems. An API determines the vocabulary and calling conventions the programmer should employ to use the services...
(API) that provides standardized access to any raster
image scannerIn computing, a scanner is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image. Common examples found in offices are variations of the desktop scanner where the document is placed on a glass window for scanning...
hardware (
flatbedIn computing, a scanner is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image. Common examples found in offices are variations of the desktop scanner where the document is placed on a glass window for scanning...
scanner, handheld scanner, video- and still-cameras,
frame grabberA frame grabber is an electronic device that captures individual, digital still frames from an analog video signal or a digital video stream. It is usually employed as a component of a computer vision system, in which video frames are captured in digital form and then displayed, stored or...
s, etc.). The SANE API is
public domainThe public domain is a range of abstract materials—commonly referred to as intellectual property—which are not owned or controlled by anyone. The term indicates that these materials are therefore "public property", and available for anyone to use for any purpose...
and its discussion and development is open to everybody. It is commonly used on
LinuxLinux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...
.
SANE differs from
TWAINTWAIN is a standard software protocol and applications programming interface that regulates communication between software applications and imaging devices such as scanners and digital cameras....
in that it is cleanly separated into frontends (user programs) and backends (scanner drivers).
Scanner Access Now Easy (SANE) is an
application programming interfaceAn application programming interface is an interface in computer science that defines the ways by which an application program may request services from libraries and/or operating systems. An API determines the vocabulary and calling conventions the programmer should employ to use the services...
(API) that provides standardized access to any raster
image scannerIn computing, a scanner is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image. Common examples found in offices are variations of the desktop scanner where the document is placed on a glass window for scanning...
hardware (
flatbedIn computing, a scanner is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image. Common examples found in offices are variations of the desktop scanner where the document is placed on a glass window for scanning...
scanner, handheld scanner, video- and still-cameras,
frame grabberA frame grabber is an electronic device that captures individual, digital still frames from an analog video signal or a digital video stream. It is usually employed as a component of a computer vision system, in which video frames are captured in digital form and then displayed, stored or...
s, etc.). The SANE API is
public domainThe public domain is a range of abstract materials—commonly referred to as intellectual property—which are not owned or controlled by anyone. The term indicates that these materials are therefore "public property", and available for anyone to use for any purpose...
and its discussion and development is open to everybody. It is commonly used on
LinuxLinux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...
.
SANE differs from
TWAINTWAIN is a standard software protocol and applications programming interface that regulates communication between software applications and imaging devices such as scanners and digital cameras....
in that it is cleanly separated into frontends (user programs) and backends (scanner drivers). Whereas a TWAIN driver handles the user interface as well as communications with the scanner hardware, a SANE driver only provides an interface with the hardware and describes a number of "options" which drive each scan. These
options specify parameters such as the resolution of the scan, the scan area, colour model, etc. Each
option has a name, and information about its type, units, and range or possible values (e.g enumerated list). By convention there are several "well known"
options that frontends can supply using convenient
GUIA graphical user interface is a type of user interface item that allows people to interact with programs in more ways than typing such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment with images rather than...
interaction e.g. the scan area
options can be set by dragging a rectangular outline over a preview image. Other options can be presented using GUI elements appropriate to their type e.g. sliders, drop-down lists, etc.
One consequence of this separation is that network scanning is easily implemented with no special handling in either the frontends or backends. On a host with a scanner, the
saned daemon runs and handles network requests. On client machines a "net" backend (driver) connects to the remote host to fetch the scanner options, and perform previews and scans. The saned daemon acts as a frontend locally, but simply passes requests and data between the network connections and the local scanner. Similarly, the "net" backend passes requests and data between the local frontend and the remote host.
Various types of unsupervised batch scanning are also possible with a minimum of support needed in the backend (driver). Many scanners support the attachment of document feeders which allow a large number of sheets of paper to be automatically scanned in succession. Using the SANE API, the frontend simply has to "play back" the same set of options for each scan, driving the document feed in between scans to load the next sheet of paper. The frontend only has to obtain the set of options from the user once.
See also
- Image and Scanner Interface Specification - Proprietary
The word proprietary indicates that a party, or proprietor, exercises private ownership, control or use over an item of property.Terms relating to Proprietary include:*Proprietary chapel*Proprietary church*Proprietary colleges*Proprietary colony...
industry standard interface.
- TWAIN
TWAIN is a standard software protocol and applications programming interface that regulates communication between software applications and imaging devices such as scanners and digital cameras....
- Software APIAn application programming interface is an interface in computer science that defines the ways by which an application program may request services from libraries and/or operating systems. An API determines the vocabulary and calling conventions the programmer should employ to use the services...
for local drivers that are bundled with control GUIA graphical user interface is a type of user interface item that allows people to interact with programs in more ways than typing such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment with images rather than...
.
- Windows Image Acquisition
Windows Image Acquisition is a Microsoft driver model and application programming interface for Microsoft Windows 2000 and later operating systems that enables graphics software to communicate with imaging hardware such as scanners, digital cameras and Digital Video-equipment...
(WIA) - Proprietary API from Microsoft.
External links