![]() | This article includes a list ofgeneral references, butit lacks sufficient correspondinginline citations. Please help toimprove this article byintroducing more precise citations.(August 2008) (Learn how and when to remove this message) |
![]() | |
![]() | |
Original author(s) | David Mosberger-Tang Andy Beck |
---|---|
Initial release | November 27, 1996; 28 years ago (1996-11-27)[1] |
Stable release | 1.1.1 / 19 January 2022; 3 years ago (2022-01-19) |
Repository | |
Operating system | Microsoft Windows,Linux,UNIX,OS/2 |
License | GNU GPLv2 or later[2] (frontend programs), weakened[3] GPLv2 or later[4] (backend libraries), Public domain[5] (SANE standard: API & network protocol)[6] |
Website | www |
Scanner Access Now Easy (SANE) is an open-sourceapplication programming interface (API) that provides standardized access to any rasterimage scanner hardware (flatbed scanner,handheld scanner, video- and still-cameras,frame grabbers, etc.). The SANE API ispublic domain. It is commonly used onLinux.
SANE differs fromTWAIN in that it is cleanly separated into "front ends" (user programs) and "back ends" (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.[7] Theseoptions specify parameters such as the resolution of the scan, the scan area, colour model, etc. Eachoption 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 front ends can supply using convenientGUI interaction e.g., the scan areaoptions 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 front ends or back ends. On a host with a scanner, thesaned daemon runs and handles network requests. On client machines a "net" back end (driver) connects to the remote host to fetch the scanner options, and perform previews and scans. The saned daemon acts as a front end locally, but simply passes requests and data between the network connections and the local scanner. Similarly, the "net" back end passes requests and data between the local front end and the remote host.
Various types of unsupervised batch scanning are also possible with a minimum of support needed in the back end (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 front end 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 front end only has to obtain the set of options from the user once.
Several user interfaces have been written to combine SANE with an easy user method of controlling it.
gscan2pdf is an interface for scanning documents to PDF on theGNOME desktop that uses SANE to communicate with the scanner. It is available under theGPL. It includes common editing tools, e.g., for rotating or cropping pages. It is also able to performOCR using several optional OCR tools and save a searchable PDF. PDF files can be further downsampled upon saving.[8]
Simple Scan is a simplified GUI using SANE that is intended to be easier to use and better integrate into theGNOME desktop than XSane. It was initially written forUbuntu and is maintained by Robert Ancell ofCanonical Ltd. for Linux. Simple Scan was first fielded as part ofUbuntu 10.04 Lucid Lynx and is also used inLubuntu (until Lubuntu 18.04 LTS) andXubuntu. It is now part of theGNOME project.[9][10][11][12][13][14]
Skanlite is a simpleimage scanning application, based on the KSane backend. Kåre Särs is the lead developer.[15] InKDE 4 Skanlite replaced Kooka of KDE 3 as default KDE scanning application.[16]
Skanlite is based on libksane, an interface provided by KDE for SANE libraries to control flatbed scanners.[17] It also works with networked scanners.[18]
SwingSane is a cross-platform,Java front end for SANE, written and maintained by Roland Quast. It is available forMicrosoft Windows,Linux,Mac OS X and is licensed under the Apache 2.0 License.[19] The source code for the project can also be adapted for use with an existingSwing application.[20]
XSane is a graphical front end for SANE written by Oliver Rauch. It is available forMicrosoft Windows,Linux,UNIX, andOS/2 and is licensed under the GNU General Public License (GPL).[21] 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-back-ends versions will possibly work with some scanner models connected locally.[22]
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.[permanent dead link]
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ... As a special exception, the authors of SANE give permission for additional uses of the libraries contained in this release of SANE. The exception is that, if you link a SANE library with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU General Public License. Your use of that executable is in no way restricted on account of linking the SANE library code into it. This exception does not, however, invalidate any other reasons why the executable file might be covered by the GNU General Public License. If you submit changes to SANE to the maintainers to be included in a subsequent release, you agree by submitting the changes that those changes may be distributed with this exception intact. If you write modifications of your own for SANE, it is your choice whether to permit this exception to apply to your modifications. If you do not wish that, delete this exception notice. This file implements a dynamic linking based SANE meta backend. It allows managing an arbitrary number of SANE backends by using dynamic linking to load backends on demand.[permanent dead link]
The standard is considered to be in the public domain. Anyone is free to implement SANE interface conforming applications or libraries in any way...[permanent dead link]
SANE consists of three parts each of which has its own licensing terms: * The frontend programs. These programs are generally protected by the GNU General Public License. (See file COPYING.) * The backend libraries. Most backend libraries are protected by the GNU General Public License (see file COPYING), but as an exception, it is permissible to link against such a library without affecting the licensing status of the program that uses the libraries. ... Note that not all of the backends apply the exception and that some have additional licensing constraints. ... * The SANE API and network protocol as put forth in the standard document. The standard is considered to be in the public domain. Anyone is free to implement SANE interface conforming applications or libraries in any way ...[permanent dead link]
{{cite web}}
: CS1 maint: numeric names: authors list (link) CS1 maint: year (link){{cite web}}
: CS1 maint: year (link)