Scanner Access Now Easy
Encyclopedia
Scanner Access Now Easy (SANE) is an application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 (API) that provides standardized access to any raster image scanner
Image scanner
In computing, an image scanner—often abbreviated to just 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...

 hardware (flatbed
Image scanner
In computing, an image scanner—often abbreviated to just 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...

 scanner, handheld scanner, video- and still-cameras, frame grabber
Frame grabber
A 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 domain
Public domain
Works are in the public domain if the intellectual property rights have expired, if the intellectual property rights are forfeited, or if they are not covered by intellectual property rights at all...

 and its discussion and development is open to everybody. It is commonly used on Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

.

Development

SANE differs from TWAIN
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....

 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 GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 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.

Graphical user interfaces

Several user interfaces have been written to combine SANE with an easy user method of controlling it.

XSane

XSane is a graphical frontend for SANE that is written and maintained by Oliver Rauch. It is available for Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

, and OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 and is licenced under the GNU General Public License (GPL). The Windows version only allows a Windows computer to access a scanner that is attached to a Unix, OS/2 or Mac-OS-X computer, not to the local Windows computer.

Simple Scan

Simple Scan is a simplified GUI using SANE that is intended to be easier to use and better integrate into the GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

 desktop than XSANE. It was initially written and is maintained by Robert Ancell of Canonical Ltd.
Canonical Ltd.
Canonical Ltd. is a private company founded by South African entrepreneur Mark Shuttleworth to market commercial support and related services for Ubuntu Linux and related projects. Canonical is registered in London and employs staff around the world...

 for Linux. Simple Scan was first fielded as part of Ubuntu 10.04 Lucid Lynx and is also used in Lubuntu
Lubuntu
Lubuntu is a lightweight Linux operating system based on Ubuntu but using the LXDE desktop environment in place of Ubuntu's Unity shell and GNOME desktop...

.

gscan2pdf

gscan2pdf (Gnome Scan To PDF) is an interface for scanning documents to PDF on the GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

 desktop that uses SANE to communicate with the scanner. It is available under the GPL. It includes common editing tools, e.g. for rotating or cropping pages. It is also able to perform OCR
Optical character recognition
Optical character recognition, usually abbreviated to OCR, is the mechanical or electronic translation of scanned images of handwritten, typewritten or printed text into machine-encoded text. It is widely used to convert books and documents into electronic files, to computerize a record-keeping...

 using several optional OCR tools and save a searchable PDF. PDF files can be further downsampled upon saving.

See also

  • Image and Scanner Interface Specification - open industry standard interface.
  • TWAIN
    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 API
    Application programming interface
    An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

     for local drivers that are bundled with control GUI
    Graphical user interface
    In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

    .
  • Windows Image Acquisition
    Windows Image Acquisition
    Windows Image Acquisition is a Microsoft driver model and application programming interface for Microsoft Windows Me and later Windows 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK