Udostępnij przez


Podstawowe skanowanie dla skanerów płaskich

Aplikacja WIA wylicza element główny i element podrzędny najwyższego poziomu w drzewie elementów skanera w celu określenia obsługiwanych funkcji skanera. Następnie aplikacja używa tego elementu podrzędnego jako źródła skanowania. Na przykład płaskie skanery są używane do skanowania z powierzchni płaskiej, natomiast podajniki są używane do skanowania przez podajnik dokumentów itd.

Zachowanie programowania i skanowania elementu płaskiego w systemie Windows Vista jest identyczne z systemem przeciążenia używanym przez system Windows XP i Windows Me. To przeciążenie systemu programuje pierwszy element podrzędny w drzewie elementów, umieszczając na nim wszystkie flagi atrybutów WIA.

Aplikacja zwykle wykonuje następujące operacje, gdy programuje płaski skaner, ale niekoniecznie w następującej kolejności:

  • Wyliczaj elementy WIA najwyższego poziomu i poszukaj elementów oznaczonych flagą elementu WiaItemTypeProgrammableDataSource i właściwością WIA_IPA_ITEM_CATEGORY ustawioną na WIA_CATEGORY_FLATBED.

  • Przeczytaj prawidłowe wartości właściwości WIA_IPA_TYMED i WIA_IPA_FORMAT .

  • Wybierz typ transferu pamięci lub transferu plików, ustawiając właściwość WIA_IPA_TYMED. Aby uzyskać więcej informacji na temat dostępnych typów transferów, zobacz Transfery danych. W przypadku transferów opartych na usłudze IStream WIA_IPA_TYMED jest domyślnie ustawiona na TYMED_FILE i nie należy jej zmieniać.

  • Wybierz ostateczny format danych, ustawiając właściwość WIA_IPA_FORMAT.

  • Wybierz ustawienia obrazu, takie jak WIA_IPA_DEPTH i WIA_IPA_DATATYPE.

  • Przenieś dane przy użyciu tego elementu WIA.

Sterownik zwykle wykonuje następujące operacje, gdy używa skanera z powierzchnią płaską do skanowania:

  1. Wywołaj IWiaMiniDrv::drvValidateItemProperties i IWiaMiniDrv::drvReadItemProperties. Sterownik WIA powinien zweryfikować wszystkie ustawienia właściwości w fazie ustawienia właściwości aplikacji.

  2. Wywołaj IWiaMiniDrv::drvWriteItemProperties. Kontekst elementu WIA, który jest przekazywany, należy do elementu skanera płaskiego, aby sterownik wiedział, że aplikacja zamierza używać płaskiego skanera do skanowania.

  3. Wywołaj IWiaMiniDrv::drvAcquireItemData. Kontekst elementu WIA, który jest przekazywany, należy do elementu skanera płaskiego, dzięki czemu sterownik może łatwo określić, że aplikacja zamierza skanować przy użyciu płaskich płyt.

  4. Zaprogramuj urządzenie i skanuj z użyciem skanera płaskiego, korzystając z bieżących właściwości tego skanera. Jeśli sterownik WIA nie jest w trybie skanowania płaskim skanerem, powinien podjąć próbę przełączenia się do tego trybu skanowania. Nie ma specjalnego ustawienia umożliwiającego aplikacji przełączanie się do korzystania ze skanera płaskiego. Skanowanie za pomocą skanera płaskiego jest kontraktem między aplikacją a sterownikiem; zgadzają się, że skaner płaski ma być używany do transferu danych.

Sterownik musi używać właściwości WIA w elemencie skanera płaskiego jako ustawień, które mają być stosowane do płaskiej części skanera przed skanowaniem. Aplikacja WIA musi zawsze ufać nagłówkom danych zwracanym przez sterownik WIA. Jeśli na przykład skaner ustali, że nie może skanować obrazu o określonej szerokości, a w rezultacie zaokrągla wartość do szerokości, którą może skanować, sterownik powinien zaktualizować nagłówki obrazów przy użyciu zmodyfikowanych informacji o szerokości. Ta aktualizacja gwarantuje, że poprawne informacje są dostępne dla aplikacji. Sterownik WIA powinien podjąć próbę zaktualizowania właściwości WIA przy użyciu rzeczywistych informacji zwracanych z urządzenia.

Zaawansowane skanowanie dla skanerów płaskich

Skanowanie wielostrefowe z płaskiego skanera jest możliwe za pomocą konfiguracji ręcznej lub automatycznej przy użyciu filtru segmentacji WIA. Należy pamiętać, że filtr segmentacji nie różni się od aplikacji w tym, co może i nie może zrobić. Te same procedury, które zostały opisane dla filtru segmentacji, można uruchamiać bezpośrednio przez aplikację w celu utworzenia elementów podrzędnych dla nowych regionów skanowania.