Scanner Access Now Easy
||This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (August 2008)|
|Original author(s)||David Mosberger-Tang
|Initial release||November 27, 1996|
|Stable release||1.0.25 / 3 October 2015|
|Operating system||Microsoft Windows, Linux, UNIX, OS/2|
|License||GNU General Public License (GPL)|
Scanner Access Now Easy (SANE) is an application programming interface (API) that provides standardized access to any raster image scanner hardware (flatbed scanner, handheld scanner, video- and still-cameras, frame grabbers, etc.).
SANE differs from TWAIN 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 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 is a graphical frontend for SANE that is written and maintained by Oliver Rauch. It is available for Microsoft Windows, Linux, UNIX, and OS/2 and is licensed 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 network computer, but not generally to the local Windows computer. Only the "complete" sane-backends versions will possibly work with some scanner models connected locally. 
Simple Scan is a simplified GUI using SANE that is intended to be easier to use and better integrate into the GNOME desktop than XSane. It was initially written for Ubuntu and is maintained by Robert Ancell of Canonical Ltd. for Linux. Simple Scan was first fielded as part of Ubuntu 10.04 Lucid Lynx and is also used in Lubuntu and Xubuntu.
gscan2pdf is an interface for scanning documents to PDF on the GNOME 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 using several optional OCR tools and save a searchable PDF. PDF files can be further downsampled upon saving.
SwingSane is a cross-platform, Java frontend for SANE, written and maintained by Roland Quast. It is available for Microsoft Windows, Linux, Mac OS X and is licensed under the Apache 2.0 License. The source code for the project can also be adapted for use with an existing Swing application.
- Image and Scanner Interface Specification (ISIS) - Open industry standard interface.
- TWAIN - Software API for local drivers that are bundled with control GUI.
- Windows Image Acquisition (WIA) - Proprietary API from Microsoft.
- History of SANE, 2001-11-20, firstname.lastname@example.org Mailing list, The first entry in ChangeLog is from 1996-11-16. The first SANE standard I know is version 0.2 from 1996-11-17. SANE 0.1 seem to have been released around 1996-11-27. The first mail on sane-devel is from 1996-12-09.
- Rauch, Oliver (February 2009). "XSane - graphical scanning frontend". Retrieved 4 June 2010.
- Rauch, Oliver (n.d.). "XSane WIN32 version". Retrieved 24 October 2010.
- Ancell, Robert (May 2010). "Simple Scan". Retrieved 4 June 2010.
- Canonical Ltd (2012). "Simple Scan Development Team". Retrieved 8 March 2012.
- Canonical Ltd (2012). "Packages by project series". Retrieved 8 March 2012.
- UbuntuUpdates.org (April 2010). "Package simple-scan". Retrieved 4 June 2010.
- OMG! Ubuntu! (December 2009). "Lucid to Get Scanning Tool "Simple Scan"". Retrieved 4 June 2010.
- gscan2pdf (n.d.). "gscan2pdf - A GUI to produce PDFs or DjVus from scanned documents". Retrieved 27 September 2011.
- Quast, Roland (February 2015). "SwingSane - graphical scanning frontend". Retrieved 19 February 2015.
- Quast, Roland (n.d.). "SwingSane project files". Retrieved 19 February 2015.
|Wikimedia Commons has media related to Scanner Access Now Easy.|
- Official website
- SANE backends list
- Java Tech: Acquire Images with TWAIN and SANE, Part 3 by Jeff Friesen 2005/11/04