Herd Software Entwicklung
DaVinci Grafikbibliothek
DaVinci Dokumentation

Leonardo: Probleme mit TWAIN-ImplementierungenIm 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.
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.
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.
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.
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.
Dies betrifft sogar Leistungsmerkmale, die nach dem TWAIN API für jede Datenquelle vorgeschrieben sind. Folgende Fälle wurden uns bisher bekannt:
Es gibt Anbieter von alternativen TWAIN-Treibern die ihre Treiber unabhängig von der eingesetzten Scannerhardware vermarkten.
Þ Beispiel für Unbeaufsichtigtes Scannen
Þ Funktion TWAINInitialize
Þ Funktion TWAINAquireExt
Þ Funktion TWAINSetResolution
Þ Funktion TWAINSetRect
Þ Funktion TWAINCallDS
Þ Funktion TWAINIsDSMOpen