Scanner Access Now Easy
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.).
The SANE API is public domain and its discussion and development is open to everybody. It is commonly used on Linux.
Development
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.