Scanner Access Now Easy
# Scanner Access Now Easy

Scanner Access Now Easy, kurz SANE, ist eine freie Programmierschnittstelle (API) für den Zugriff auf bildgebende Geräte wie Scanner, Digitalkameras, Videokameras und andere über verschiedene Schnittstellen (USB, SCSI etc.). Es findet hauptsächlich unter Linux Verwendung, mit Portierungen auf OS/2 bzw. eComStation, macOS und Windows. Es ist eine Alternative zu TWAIN als Programmierschnittstelle.

Die zur Distribution gehörenden Anwendungs- und Hilfsprogramme stehen unter der GNU GPL, die Schnittstellenbeschreibung selbst ist jedoch gemeinfrei.

## Aufbau

Im Gegensatz zu TWAIN sind bei SANE die Funktionalitäten von Frontend und Backend strikt getrennt.

Aufgabe der Backends ist die Kommunikation mit dem jeweiligen Bilderfassungsgerät über eine der zahlreichen unterstützten Schnittstellen (USB, FireWire, SCSI, Parallele Schnittstelle oder Serielle Schnittstelle). Daneben existieren auch Backends ohne eine physische Bildquelle, z. B. zum Generieren von Weißem Rauschen oder beliebigen anderen Bilddaten aus einem Prozess oder einer Bilddatei. Dazu kommt das spezielle net-Backend (siehe unten). Unabhängig von ihrer Implementierung stellen alle Backends eine einheitliche Schnittstelle zum Ansprechen der von ihnen unterstützten Quellen zur Verfügung, die den Kern der SANE-Definition bildet.

Die Frontends stellen den zum Benutzer gerichteten Teil des Arbeitsablaufes dar und sind normalerweise in ein Anwendungsprogramm integriert. Durch die standardisierte Schnittstelle können alle Frontends mit allen Backends ohne Probleme verwendet werden, die verfügbaren Optionen werden lediglich durch die tatsächlichen Fähigkeiten der Bildquelle (Auflösung, Farbtiefe, mit oder ohne Einzelblatteinzug, Diawechsler usw.) beschränkt. Eine besondere Form eines Frontends stellt der zum Projekt gehörende saned dar (siehe unten). Die SANE-Distribution enthält bereits einige fertige Frontends, wie z. B. das Programm scanimage, mit dem sich in einem Skript automatisch Bilder einlesen lassen, ohne dafür eine grafische Benutzeroberfläche zu benötigen.

## Beispiele für Frontends

Frontends können sowohl auf das reine Bildeinlesen beschränkt sein, als auch weitergehende Funktionen bieten.

Kommandozeilenprogramm:

* scanimage ist ein einfaches Kommandozeilen-Programm.

Grafische Endbenutzer-Anwendung:

* Xsane ist ein GTK+-basiertes Programm, von dem auch eine Portierung für Windows existiert.
* Simple Scan ist ein einfaches Programm zum Scannen unter GNOME
* Skanlite ist ein einfaches Programm zum Scannen unter KDE Plasma 5.
* Tame ist das Frontend für OS/2 und eComStation.
* xscanimage ist die X11-Version von "scanimage" und dient als Scan-Plugin für GIMP
* gscan2pdf ist ein Gnome-Programm, das sehr einfach scannen und aus den gesammelten Bildern direkt PDF-Dateien erzeugen kann.

SANE-Unterstützung:

* Neben Kameras unterstützt Digikam auch die SANE-Schnittstelle.
* WIASANE ist ein WIA-Treiber für Windows, welcher die Verwendung eines SANE-Netzwerkdienstes ermöglicht und voraussetzt.
* Scannen mit DigiKam
* Scannen mit Kooka
* Scannen mit XSane
* Scannen mit xscanimage

## Netzwerkscanner

Die Aufgabenteilung zwischen Backend und Frontend macht es verhältnismäßig einfach, via SANE einen im Netzwerk verfügbaren Scanner zu betreiben. Der mitgelieferte Daemon saned greift als spezielles Frontend auf das zum Scanner gehörende Backend zu und stellt seine Dienste via TCP/IP (auf Port 6566) zur Verfügung. Am anderen Ende des Netzes agiert das net-Backend gegenüber dem lokalen Frontend und sorgt für die Weiterleitung aller Daten zum Daemon. Folge ist, dass alle anderen Frontends und damit auch Anwendungsprogramme keine Anpassungen benötigen, um einen (oder mehrere) Netzwerkscanner zu verwenden.

SANE bietet keinen Schutz des Zugriffes auf den Scanner, es erfolgt keine Authentifizierung oder Autorisierung, alle Daten werden unverschlüsselt übertragen. Mittels TCP-Wrapper lässt sich die Verwendung begrenzen oder über SSH durch einen gesicherten Tunnel führen. Dank des net-Backends sind dafür nur Änderungen an dessen Konfiguration, nicht aber den eingesetzten Programmen nötig.

## Hilfsprogramme & Ergänzende Informationen

* ein zu SANE ähnliches Projekt für Videoquellen ist Video4Linux
* speziell für den Zugriff auf Digitalkameras existiert auch das gPhoto-Projekt
* sane-find-scanner kann nach lokal angeschlossenen Scannern suchen, auch wenn diese (noch) nicht korrekt konfiguriert sind
* scanadf für die Kommandozeile
* flscan (Fast Light Scan)
