Jump to content

Scanner Access Now Easy: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Kenpem (talk | contribs)
Removed External Links bullet "Java Tech: Acquire Images with TWAIN and SANE, Part 3 by Jeff Friesen 2005/11/04" as the link is no longer valid.
Undid revision 1210558428 by Catherine.sea (talk) rvt spam
 
(36 intermediate revisions by 21 users not shown)
Line 1: Line 1:
{{Short description|Open source scanner application programming interface}}
{{More footnotes|date=August 2008}}
{{More footnotes|date=August 2008}}
{{Infobox Software
{{Infobox software
| name = SANE
| name = SANE
| logo = ScannerAccessNowEasyLogo.png
| logo = ScannerAccessNowEasyLogo.png
| screenshot = XSane.png
| screenshot = XSane.png
| caption = XSane on [[Ubuntu (operating system)|Ubuntu]] ([[Linux]])
| caption = XSane on [[Ubuntu]] ([[Linux]])
| screenshot alt = XSane on [[Ubuntu (operating system)|Ubuntu]] ([[Linux]])
| screenshot alt = XSane on [[Ubuntu]] ([[Linux]])
| collapsible =
| collapsible =
| author = David Mosberger-Tang<br />Andy Beck
| author = David Mosberger-Tang<br />Andy Beck
| developer =
| developer =
| released = {{Start date and age|1996|11|27}}<ref>[http://sane-devel.alioth.debian.narkive.com/iwO4b2L3/history-of-sane History of SANE], 2001-11-20, [email protected] 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.''</ref>
| released = {{Start date and age|1996|11|27}}<ref>[http://sane-devel.alioth.debian.narkive.com/iwO4b2L3/history-of-sane History of SANE], 2001-11-20, [email protected] 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."</ref>
| latest release version = 1.0.27
| latest release version = 1.1.1
| latest release date = {{Start date and age|2017|05|22|df=yes}}
| latest release date = {{Start date and age|2022|01|19|df=yes}}
| latest preview version =
| latest preview version =
| latest preview date =
| latest preview date =
| programming language =
| frequently updated =
| operating system = [[Microsoft Windows]], [[Linux]], [[UNIX]], [[OS/2]]
| programming language =
| platform =
| operating system = [[Microsoft Windows]], [[Linux]], [[UNIX]], [[OS/2]]
| size =
| platform =
| language =
| size =
| genre =
| language =
| license = [[GPLv2|GNU GPLv2 or later]]<ref>{{cite web |access-date=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/frontend/scanimage.c |title=license notice placed at the top in one of the source files of the project's said repository subsection, probably in each of its source files |quote=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. }}{{Dead link|date=March 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> (frontend programs),<br />weakened<ref>{{cite web |access-date=November 27, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/backend/dll.c |title=sane/sane-backends - SANE backends - scanner drivers }}{{Dead link|date=March 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> GPLv2 or later<ref>{{cite web |access-date=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/backend/dll.c |title=license notice placed at the top in one of the source files of the project's said repository subsection, applies to most of its source files, some are set up like most, but without linking exception or with additional license constrains |quote=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. ...&nbsp; 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. }}{{Dead link|date=March 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> (backend libraries),<br />Public domain<ref>{{cite web |access-date=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/LICENSE |title=license notice file placed in project's repository root section |quote=The standard is considered to be in the public domain. Anyone is free to implement SANE interface conforming applications or libraries in any way... }}{{Dead link|date=March 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> (SANE standard: API & network protocol) <ref>{{cite web |access-date=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/LICENSE |title=license notice file placed in project's repository root section |quote=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. ...&nbsp;Note that not all of the backends apply the exception and that some have additional licensing constraints. ...&nbsp;* 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&nbsp;... }}{{Dead link|date=March 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
| status =
| website = {{URL|http://www.sane-project.org/}}
| genre =
| license = [[GPLv2|GNU GPLv2 or later]]<ref>{{cite web |accessdate=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/frontend/scanimage.c |title=license notice placed at the top in one of the source files of the project's said repository subsection, probably in each of its source files |quote=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.}}</ref> (frontend programs),<br />weakened<ref>{{cite web |accessdate=November 27, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/backend/dll.c |title=sane/sane-backends - SANE backends - scanner drivers}}</ref> GPLv2 or later<ref>{{cite web |accessdate=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/backend/dll.c |title=license notice placed at the top in one of the source files of the project's said repository subsection, applies to most of its source files, some are set up like most, but without linking exception or with additional license constrains |quote=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.}}</ref> (backend libraries),<br />Public domain<ref>{{cite web |accessdate=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/LICENSE |title=license notice file placed in project's repository root section |quote=The standard is considered to be in the public domain. Anyone is free to implement SANE interface conforming applications or libraries in any way...}}</ref> (SANE standard: API & network protocol) <ref>{{cite web |accessdate=November 26, 2017 |url=https://anonscm.debian.org/cgit/sane/sane-backends.git/tree/LICENSE |title=license notice file placed in project's repository root section |quote=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...}}</ref>
| website = {{URL|http://www.sane-project.org/}}
}}
}}
'''Scanner Access Now Easy''' ('''SANE''') is an [[application programming interface]] (API) that provides standardized access to any raster [[image scanner]] hardware ([[Image scanner|flatbed]] scanner, [[handheld]] scanner, video- and still-cameras, [[frame grabber]]s, etc.).
'''Scanner Access Now Easy''' ('''SANE''') is an open-source [[application programming interface]] (API) that provides standardized access to any raster [[image scanner]] hardware ([[Image scanner|flatbed]] scanner, [[handheld]] scanner, video- and still-cameras, [[frame grabber]]s, etc.). The SANE API is [[public domain]]. It is commonly used on [[Linux]].

The SANE API is [[public domain]] and its discussion and development is open to everybody. It is commonly used on [[Linux]].


==Architecture==
==Architecture==
SANE differs from [[TWAIN]] in that it is cleanly separated into [[front end processor (program)|frontends]] (user programs) and [[Front and back ends|backend]]s (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 [[Graphical user interface|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.
SANE differs from [[TWAIN]] in that it is cleanly separated into "[[Input method|front ends]]" (user programs) and "[[Front and back ends|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. 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 front ends can supply using convenient [[Graphical user interface|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.
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, the '''saned''' 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 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.
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.


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


===XSane===
===gscan2pdf===
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 [[General Public License|GPL]]. It includes common editing tools, e.g., for rotating or cropping pages. It is also able to perform [[Optical Character Recognition|OCR]] using several optional OCR tools and save a searchable PDF. PDF files can be further downsampled upon saving.<ref name="gscan2pdf">{{Cite web|url = http://gscan2pdf.sourceforge.net/|title = gscan2pdf - A GUI to produce PDFs or DjVus from scanned documents|access-date = 27 September 2011|last = gscan2pdf|year = n.d.}}</ref>
XSane is a graphical frontend for SANE written by Oliver Rauch. It is available for [[Microsoft Windows]], [[Linux]], [[UNIX]], and [[OS/2]] and is licensed under the GNU General Public License (GPL).<ref name="XSANE">{{cite web|url = http://www.xsane.org/|title = XSane - graphical scanning frontend|accessdate = 4 June 2010|last = Rauch|first = Oliver|authorlink = |date=February 2009}}</ref> 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.<ref name="WIN32">{{Cite web|url = http://www.xsane.org/xsane-win32.html|title = XSane WIN32 version|accessdate = 24 October 2010|last =Rauch|first = Oliver|authorlink = |year = n.d.}}</ref>


===Simple Scan===
===Simple Scan===
[[File:Simple Scan 2.32.0.png|thumb|right|Simple Scan 2.32.0]]
[[File:Simple Scan (GNOME Document Scanner) 3.34.1.jpg|thumb|Simple Scan (also called GNOME Document Scanner)]]
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 (operating system)|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]].<ref name="Launchpad">{{cite web|url = https://launchpad.net/simple-scan|title = Simple Scan|accessdate = 4 June 2010|last = Ancell|first = Robert|authorlink = |date=May 2010}}</ref><ref name="DevTeam">{{cite web|url = https://launchpad.net/~simple-scan-team|title = Simple Scan Development Team|accessdate = 8 March 2012|last = [[Canonical Ltd]]|year = 2012}}</ref><ref name="SSHist">{{cite web|url = https://launchpad.net/simple-scan/+packages|title = Packages by project series|accessdate = 8 March 2012|last = [[Canonical Ltd]]|year = 2012}}</ref><ref name="UbuntuUpdates">{{cite web|url = http://www.ubuntuupdates.org/packages/show/167219|title = Package simple-scan|accessdate = 4 June 2010|last = UbuntuUpdates.org|authorlink = |date=April 2010}}</ref><ref name="OMG">{{cite web|url = http://www.omgubuntu.co.uk/2009/12/lucid-to-get-new-scanning-tool-%E2%80%98simple-scan%E2%80%99/|title = Lucid to Get Scanning Tool "Simple Scan"|accessdate = 4 June 2010|last = OMG! Ubuntu!|authorlink = |date=December 2009}}</ref>
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 version history#1004|Ubuntu 10.04 Lucid Lynx]] and is also used in [[Lubuntu]] (until Lubuntu 18.04 LTS) and [[Xubuntu]]. It is now part of the [[GNOME]] project.<ref name="Launchpad">{{cite web|url = https://launchpad.net/simple-scan|title = Simple Scan|access-date = 4 June 2010|last = Ancell|first = Robert|date=May 2010}}</ref><ref name="DevTeam">{{cite web|url = https://launchpad.net/~simple-scan-team|title = Simple Scan Development Team|access-date=8 March 2012 | last=Canonical Ltd. | author-link=Canonical (company) |year = 2012}}</ref><ref name="SSHist">{{cite web|url = https://launchpad.net/simple-scan/+packages|title = Packages by project series|access-date = 8 March 2012| last=Canonical Ltd.| author-link=Canonical (company)|year=2012}}</ref><ref name="UbuntuUpdates">{{cite web|url = http://www.ubuntuupdates.org/packages/show/167219|title = Package simple-scan|access-date = 4 June 2010|last = UbuntuUpdates.org|date = April 2010|archive-date = 26 July 2011|archive-url = https://web.archive.org/web/20110726223910/http://www.ubuntuupdates.org/packages/show/167219|url-status = dead}}</ref><ref name="OMG">{{cite web|url = http://www.omgubuntu.co.uk/2009/12/lucid-to-get-new-scanning-tool-%E2%80%98simple-scan%E2%80%99/|title = Lucid to Get Scanning Tool "Simple Scan"|access-date = 4 June 2010|last = OMG! Ubuntu!|date=December 2009}}</ref><ref name="Gnome">{{cite web|url = https://gitlab.gnome.org/GNOME/simple-scan|title = Document Scanner|access-date = 21 March 2020|author=GNOME|author-link=GNOME|work = gitlab.gnome.org|date = 21 March 2020|archive-url = https://web.archive.org/web/20191025023855/https://gitlab.gnome.org/GNOME/simple-scan|archive-date = 25 October 2019}}</ref>


===gscan2pdf===
===Skanlite===
[[File:Skanlite.png|thumb|SkanLite]]
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 [[General Public License|GPL]]. It includes common editing tools, e.g., for rotating or cropping pages. It is also able to perform [[Optical Character Recognition|OCR]] using several optional OCR tools and save a searchable PDF. PDF files can be further downsampled upon saving.<ref name="gscan2pdf">{{Cite web|url = http://gscan2pdf.sourceforge.net/|title = gscan2pdf - A GUI to produce PDFs or DjVus from scanned documents|accessdate = 27 September 2011|last = gscan2pdf|authorlink = |year = n.d.}}</ref>
Skanlite is a simple [[Image scanner|image scanning]] application, based on the KSane backend. Kåre Särs is the lead developer.<ref>{{citation |url=http://www.kde.org/applications/graphics/skanlite/ |title=Skanlite |publisher=Kde.org |access-date=2012-08-23}}</ref> In [[KDE Software Compilation 4|KDE 4]] Skanlite replaced Kooka of KDE 3 as default KDE scanning application.<ref>{{citation |url=http://userbase.kde.org/Kooka |title=Kooka |publisher=Userbase.kde.org |date=2012-06-10 |access-date=2012-08-23}}</ref>

Skanlite is based on libksane, an interface provided by KDE for SANE libraries to control flatbed scanners.<ref>{{citation |url=http://docs.kde.org/development/en/extragear-graphics/skanlite/index.html |title=Skanlite handbook |publisher=Docs.kde.org |date=2011-11-29 |access-date=2012-08-23}}</ref> It also works with networked scanners.<ref name="Skanlite on userbase.kde.org">{{citation |url=http://docs.kde.org/development/en/extragear-graphics/skanlite |title=Skanlite |publisher=Docs.kde.org |date=2011-11-29 |access-date=2012-08-23}}</ref>


===SwingSane===
===SwingSane===
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.<ref name="SWINGSANE">{{cite web|url = http://swingsane.com/|title = SwingSane - graphical scanning frontend|accessdate = 19 February 2015|last = Quast|first = Roland|authorlink = |date=February 2015}}</ref> The source code for the project can also be adapted for use with an existing Swing application.<ref name="SWINGSANESRC">{{Cite web|url = https://github.com/rquast/swingsane|title = SwingSane project files|accessdate = 19 February 2015|last = Quast|first = Roland|authorlink = |year = n.d.}}</ref>
SwingSane is a cross-platform, [[Java (programming language)|Java]] front end 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.<ref name="SWINGSANE">{{cite web|url = http://swingsane.com/|title = SwingSane - graphical scanning frontend|access-date = 19 February 2015|last = Quast|first = Roland|date=February 2015}}</ref> The source code for the project can also be adapted for use with an existing [[Swing (Java)|Swing]] application.<ref name="SWINGSANESRC">{{Cite web|url = https://github.com/rquast/swingsane|title = SwingSane project files|access-date = 19 February 2015|last = Quast|first = Roland| website=[[GitHub]] |year = n.d.}}</ref>

===XSane===
XSane is a graphical front end for SANE written by Oliver Rauch. It is available for [[Microsoft Windows]], [[Linux]], [[UNIX]], and [[OS/2]] and is licensed under the GNU General Public License (GPL).<ref name="XSANE">{{cite web|url = https://gitlab.com/sane-project/frontend/xsane |title = XSane - graphical scanning frontend|access-date = 1 August 2019|last = Rauch|first = Oliver|date=February 2009}}</ref> 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.<ref name="WIN32">{{Cite web|url = http://www.xsane.org/xsane-win32.html|title = XSane WIN32 version|access-date = 24 October 2010|last =Rauch|first = Oliver|archive-url= https://web.archive.org/web/20170822145000/http://www.xsane.org/xsane-win32.html|archive-date= 22 August 2017|url-status=dead}}</ref>


== See also ==
== See also ==
* [[Image and Scanner Interface Specification]] (ISIS) – Open industry standard interface.
* [[Image and Scanner Interface Specification]] (ISIS) – Open industry standard interface
* [[TWAIN]] – Software [[Application programming interface|API]] for local drivers that are bundled with control [[Graphical user interface|GUI]].
* [[TWAIN]] – Software [[Application programming interface|API]] for local drivers that are bundled with control [[Graphical user interface|GUI]]
* [[Windows Image Acquisition]] (WIA) – Proprietary API from Microsoft.
* [[Windows Image Acquisition]] (WIA) – Proprietary API from Microsoft


==References==
==References==
Line 63: Line 66:
{{Commons category|Scanner Access Now Easy}}
{{Commons category|Scanner Access Now Easy}}
* {{Official website|http://www.sane-project.org/}}
* {{Official website|http://www.sane-project.org/}}
* [http://www.sane-project.org/sane-backends.html SANE backends list]
* [http://www.sane-project.org/sane-backends.html SANE back ends list]
{{FLOSS}}
{{FOSS}}


[[Category:Device drivers]]
[[Category:Device drivers]]

Latest revision as of 03:12, 11 June 2024

SANE
Original author(s)David Mosberger-Tang
Andy Beck
Initial releaseNovember 27, 1996; 27 years ago (1996-11-27)[1]
Stable release
1.1.1 / 19 January 2022; 2 years ago (2022-01-19)
Repository
Operating systemMicrosoft Windows, Linux, UNIX, OS/2
LicenseGNU GPLv2 or later[2] (frontend programs),
weakened[3] GPLv2 or later[4] (backend libraries),
Public domain[5] (SANE standard: API & network protocol) [6]
Websitewww.sane-project.org

Scanner Access Now Easy (SANE) is an open-source 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.). The SANE API is public domain. It is commonly used on Linux.

Architecture

[edit]

SANE differs from TWAIN 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. 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 front ends 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 front ends or back ends. On a host with a scanner, the saned 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.

Graphical user interfaces

[edit]

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

gscan2pdf

[edit]

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.[7]

Simple Scan

[edit]
Simple Scan (also called GNOME Document Scanner)

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 (until Lubuntu 18.04 LTS) and Xubuntu. It is now part of the GNOME project.[8][9][10][11][12][13]

Skanlite

[edit]
SkanLite

Skanlite is a simple image scanning application, based on the KSane backend. Kåre Särs is the lead developer.[14] In KDE 4 Skanlite replaced Kooka of KDE 3 as default KDE scanning application.[15]

Skanlite is based on libksane, an interface provided by KDE for SANE libraries to control flatbed scanners.[16] It also works with networked scanners.[17]

SwingSane

[edit]

SwingSane is a cross-platform, Java front end 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.[18] The source code for the project can also be adapted for use with an existing Swing application.[19]

XSane

[edit]

XSane is a graphical front end for SANE written by Oliver Rauch. It is available for Microsoft Windows, Linux, UNIX, and OS/2 and is licensed under the GNU General Public License (GPL).[20] 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.[21]

See also

[edit]

References

[edit]
  1. ^ History of SANE, 2001-11-20, [email protected] 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."
  2. ^ "license notice placed at the top in one of the source files of the project's said repository subsection, probably in each of its source files". Retrieved November 26, 2017. 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]
  3. ^ "sane/sane-backends - SANE backends - scanner drivers". Retrieved November 27, 2017.[permanent dead link]
  4. ^ "license notice placed at the top in one of the source files of the project's said repository subsection, applies to most of its source files, some are set up like most, but without linking exception or with additional license constrains". Retrieved November 26, 2017. 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]
  5. ^ "license notice file placed in project's repository root section". Retrieved November 26, 2017. 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]
  6. ^ "license notice file placed in project's repository root section". Retrieved November 26, 2017. 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]
  7. ^ gscan2pdf (n.d.). "gscan2pdf - A GUI to produce PDFs or DjVus from scanned documents". Retrieved 27 September 2011.{{cite web}}: CS1 maint: numeric names: authors list (link) CS1 maint: year (link)
  8. ^ Ancell, Robert (May 2010). "Simple Scan". Retrieved 4 June 2010.
  9. ^ Canonical Ltd. (2012). "Simple Scan Development Team". Retrieved 8 March 2012.
  10. ^ Canonical Ltd. (2012). "Packages by project series". Retrieved 8 March 2012.
  11. ^ UbuntuUpdates.org (April 2010). "Package simple-scan". Archived from the original on 26 July 2011. Retrieved 4 June 2010.
  12. ^ OMG! Ubuntu! (December 2009). "Lucid to Get Scanning Tool "Simple Scan"". Retrieved 4 June 2010.
  13. ^ GNOME (21 March 2020). "Document Scanner". gitlab.gnome.org. Archived from the original on 25 October 2019. Retrieved 21 March 2020.
  14. ^ Skanlite, Kde.org, retrieved 2012-08-23
  15. ^ Kooka, Userbase.kde.org, 2012-06-10, retrieved 2012-08-23
  16. ^ Skanlite handbook, Docs.kde.org, 2011-11-29, retrieved 2012-08-23
  17. ^ Skanlite, Docs.kde.org, 2011-11-29, retrieved 2012-08-23
  18. ^ Quast, Roland (February 2015). "SwingSane - graphical scanning frontend". Retrieved 19 February 2015.
  19. ^ Quast, Roland (n.d.). "SwingSane project files". GitHub. Retrieved 19 February 2015.{{cite web}}: CS1 maint: year (link)
  20. ^ Rauch, Oliver (February 2009). "XSane - graphical scanning frontend". Retrieved 1 August 2019.
  21. ^ Rauch, Oliver. "XSane WIN32 version". Archived from the original on 22 August 2017. Retrieved 24 October 2010.
[edit]