| Herd Software Entwicklung
|=
DaVinci Grafikbibliothek
|==
DaVinci Dokumentation Home Search Order


Leonardo: Probleme mit TWAIN-Implementierungen

Das TWAIN-API

Im Gegensatz zu den APIs für Drucker, Soundkarten, Video-Karten usw. wurde das für Scanner benutzte TWAIN API nicht von Microsoft spezifiziert.

Bei der Einführung von Windows hat sich Microsoft dem Thema Scanner nicht frühzeitig gewidmet. Scannerhersteller sahen die Notwendigkeit einer einheitlichen Schnittstelle (API) zwischen Scannern und Anwendungsprogrammen. Die TWAIN Arbeitsgruppe ist ein Zusammenschluß von Scannerherstellern und Herstellern von Grafikprogrammen, die sich auf eine solche Schnittstelle festgelegt haben. Neben der Definition der Schnittstelle umfaßt die TWAIN Definition noch den Data Source Manager (DSM), eine kleine DLL die lediglich dazu dient, mehrere Anwendungen mit mehreren Scannern bei Bedarf logisch zu verbinden.

TWAIN Treiber als Firmen-Know-How

Offenbar lag es nicht im Interesse der TWAIN-Teilnehmer, auch das Wissen über den Aufbau hochwertiger Gerätetreiber für Scanner zu teilen. Die TWAIN-Gruppe stellt als Beispielimplementierung lediglich eine Datenquelle zur Verfügung, die Daten aus einer BMP-Datei einliest und bemerkenswerter Weise nicht einmal die grundsätzlich in der API - Definition als "für alle Datenquellen erforderlich" gekennzeichneten Funktionen bietet.

Im Gegensatz zu echten "Open Source"-Projekten wie z.B. Linux und GNU-Projekten wird bei TWAIN-Treibern im Allgemeinen kein Quellcode zur Verfügung gestellt mit dem sich die Mängel beheben liessen.

Implementierungsunterschiede

Daher mußten viele Scanner-Hersteller ihre Gerätetreiber von null beginnend selbst entwickeln. Aufgrund von Doppeldeutigkeiten der API-Definition, aber auch weil die meisten Anwendungsprogramme nur wenige Leistungsmerkmale nutzen, sind viele Leistungsmerkmale unterschiedlich realisiert oder sogar schlicht fehlerhaft.

Dies betrifft leider nicht nur die Treiber sehr preiswerter Produkte, sondern auch teurer Spezialgeräte.

Grundlegende Leistungsmerkmale

Als grundlegende Leistungsmerkmale können diejenigen Leistungsmerkmale gelten, die von Standardanwendungen wie Adobe Photoshop, Coreldraw u.ä. benötigt werden. Diese Anwendungen eröffnen die Datenquelle und zeigen die Benutzerschnittstelle des Dialogs an. Sie überlassen die Einstellung der Parameter dem Dialog des Scanner-Treibers.

Unbeaufsichtigtes Scannen

Die Kontrolle des Scanvorgangs ohne Benutzung der Benutzerschnittstelle der TWAIN-Datenquelle wird dagegen von deutlich weniger Anwendungen verlangt. Erfahrungsgemäß lassen sich viele Einstellungen durch das TWAIN API nicht kontrollieren, obwohl sie im Benutzerdialog einstellbar sind und eine geeignete Definition im TWAIN API existiert.

Vorgeschrieben Leistungsmerkmale

Dies betrifft sogar Leistungsmerkmale, die nach dem TWAIN API für jede Datenquelle vorgeschrieben sind. Folgende Fälle wurden uns bisher bekannt:

Alternative TWAIN-Treiber

Es gibt Anbieter von alternativen TWAIN-Treibern die ihre Treiber unabhängig von der eingesetzten Scannerhardware vermarkten.

Empfehlungen für die Entwicklung von Anwendungen

Þ Beispiel für Unbeaufsichtigtes Scannen

Þ Funktion TWAINInitialize

Þ Funktion TWAINAquireExt

Þ Funktion TWAINSetResolution

Þ Funktion TWAINSetRect

Þ Funktion TWAINCallDS

Þ Funktion TWAINIsDSMOpen