Freigeben über


Grundlegendes Scannen für Flachbettscanner

Eine WIA-Anwendung listet das Stammelement und das untergeordnete Element der obersten Ebene in der Scannerelementstruktur auf, um die unterstützten Features des Scanners zu ermitteln. Die Anwendung verwendet dann dieses untergeordnete Element als Scanquelle. So werden beispielsweise Flachbettscannerelemente zum Scannen aus dem Flachbett verwendet, während Feederelemente zum Scannen aus dem Dokumenteinzug usw. verwendet werden.

Das Programmier- und Scanverhalten des Flatbed-Elements in Windows Vista ist identisch mit dem Überladungssystem, das von Windows XP und Windows Me verwendet wird. Dieses Überladungssystem programmiert das erste untergeordnete Element in der Elementstruktur, indem alle WIA-Attributflags darauf eingefügt werden.

Eine Anwendung führt normalerweise die folgenden Vorgänge aus, wenn sie das Flachbett des Scanners programmiert, aber nicht unbedingt in dieser Reihenfolge:

  • Listen Sie WIA-Elemente der obersten Ebene auf, und suchen Sie nach Elementen, die mit dem WiaItemTypeProgrammableDataSource-Elementflag und der WIA_IPA_ITEM_CATEGORY-Eigenschaft gekennzeichnet sind, die auf WIA_CATEGORY_FLATBED festgelegt ist.

  • Liest die gültigen Werte für die Eigenschaften WIA_IPA_TYMED und WIA_IPA_FORMAT .

  • Wählen Sie entweder einen Speicherübertragungs- oder Dateiübertragungstyp aus, indem Sie die eigenschaft WIA_IPA_TYMED festlegen. Weitere Informationen zu den verfügbaren Arten von Übertragungen finden Sie unter Datenübertragungen. Bei IStream-basierten Übertragungen ist WIA_IPA_TYMED standardmäßig auf TYMED_FILE festgelegt und sollte nicht geändert werden.

  • Wählen Sie das endgültige Format der Daten aus, indem Sie die eigenschaft WIA_IPA_FORMAT festlegen.

  • Wählen Sie die Bildeinstellungen aus, z. B. WIA_IPA_DEPTH und WIA_IPA_DATATYPE.

  • Übertragen Sie die Daten mithilfe dieses WIA-Elements.

Der Treiber führt normalerweise die folgenden Vorgänge aus, wenn er das Flachbett des Scanners für die Überprüfung verwendet:

  1. Rufen Sie IWiaMiniDrv::d rvValidateItemProperties und IWiaMiniDrv::d rvReadItemProperties auf. Der WIA-Treiber sollte alle Eigenschafteneinstellungen während der Eigenschaftseinstellungsphase der Anwendung überprüfen.

  2. Rufen Sie IWiaMiniDrv::d rvWriteItemProperties auf. Der WIA-Elementkontext, der übergeben wird, gehört zum Flachbettscannerelement, sodass der Treiber weiß, dass die Anwendung das Flachbett des Scanners zum Scannen verwenden möchte.

  3. Rufen Sie IWiaMiniDrv::d rvAcquireItemData auf. Der WIA-Elementkontext, der übergeben wird, gehört zum Flachbettscannerelement, sodass der Treiber leicht feststellen kann, dass die Anwendung mithilfe der Flachbettplatte scannen möchte.

  4. Programmieren Sie das Gerät und scannen Sie sie über das Flachbett mithilfe der aktuellen Flatbed-Elementeigenschaften. Wenn sich der WIA-Treiber nicht im Flachbett-Scanmodus befindet, sollte er versuchen, für die Überprüfung in diesen Modus zu wechseln. Es gibt keine spezielle Einstellung für die Anwendung, um das Flachbett zu verwenden. Die Verwendung des Flachbettelements zum Scannen ist ein Vertrag zwischen der Anwendung und dem Treiber. sie stimmen zu, dass das Flatbett für die Datenübertragung verwendet werden soll.

Der Treiber muss die WIA-Eigenschaften auf dem Flachbettscannerelement als Einstellungen verwenden, die vor der Überprüfung auf den Flachbettteil des Scanners angewendet werden sollen. Die WIA-Anwendung muss den Headern der vom WIA-Treiber zurückgegebenen Daten immer vertrauen. Wenn ein Scanner z. B. feststellt, dass er ein Bild einer angegebenen Breite nicht scannen kann und daher den Wert auf eine Breite rundet, die er überprüfen kann, sollte der Treiber die Bildheader mit den geänderten Breiteninformationen aktualisieren. Mit diesem Update wird sichergestellt, dass der Anwendung die richtigen Informationen zur Verfügung stehen. Der WIA-Treiber sollte versuchen, die WIA-Eigenschaften mit den tatsächlichen Informationen zu aktualisieren, die vom Gerät zurückgegeben werden.

Erweiterte Überprüfung für Flachbettscanner

Das Scannen in mehreren Regionen aus dem Flachbett ist entweder durch manuelle Konfiguration oder durch automatische Verwendung des WIA-Segmentierungsfilters möglich. Beachten Sie, dass sich der Segmentierungsfilter nicht von einer Anwendung unterscheidet, was er tun kann und was nicht. Die gleichen Verfahren, die für den Segmentierungsfilter beschrieben werden, können direkt von der Anwendung ausgeführt werden, um untergeordnete Elemente für neue Überprüfungsbereiche zu erstellen.