Condividi tramite


Analisi di base per scanner flat

Un'applicazione WIA enumera l'elemento radice e l'elemento figlio di primo livello nell'albero degli elementi dello scanner per determinare le funzionalità supportate dello scanner. L'applicazione usa quindi questo elemento figlio come origine di analisi. Ad esempio, gli elementi dello scanner flat vengono usati per l'analisi dal letto piatto, mentre gli elementi del feeder vengono usati per l'analisi dal feeder del documento e così via.

Il comportamento di programmazione e analisi dell'elemento flat in Windows Vista è identico al sistema di overload usato da Windows XP e Windows Me. Questo sistema di overload programma il primo elemento figlio nell'albero degli elementi inserendo tutti i flag di attributo WIA su di esso.

Un'applicazione esegue normalmente le operazioni seguenti quando programma il letto piatto dello scanner, ma non necessariamente in questo ordine:

  • Enumera gli elementi WIA di primo livello e cerca gli elementi contrassegnati con il flag di elemento WiaItemTypeProgrammableDataSource e con la proprietà WIA_IPA_ITEM_CATEGORY impostata su WIA_CATEGORY_FLATBED .

  • Leggere i valori validi per le proprietà WIA_IPA_TYMED e WIA_IPA_FORMAT .

  • Scegliere un tipo di trasferimento di memoria o di trasferimento file impostando la proprietà WIA_IPA_TYMED. Per altre informazioni sui tipi di trasferimenti disponibili, vedere Trasferimenti di dati. Per i trasferimenti basati su IStream, WIA_IPA_TYMED è impostato per impostazione predefinita su TYMED_FILE e non deve essere modificato.

  • Scegliere il formato finale dei dati impostando la proprietà WIA_IPA_FORMAT.

  • Scegliere le impostazioni dell'immagine, ad esempio WIA_IPA_DEPTH e WIA_IPA_DATATYPE.

  • Trasferire i dati usando questo elemento WIA.

Il driver esegue normalmente le operazioni seguenti quando usa il letto piatto dello scanner per eseguire l'analisi:

  1. Chiamare IWiaMiniDrv::d rvValidateItemProperties e IWiaMiniDrv::d rvReadItemProperties. Il driver WIA deve convalidare le impostazioni delle proprietà durante la fase di impostazione della proprietà dell'applicazione.

  2. Chiamare IWiaMiniDrv::d rvWriteItemProperties. Il contesto dell'elemento WIA passato appartiene all'elemento dello scanner flat in modo che il driver sappia che l'applicazione intende usare il letto piatto dello scanner per l'analisi.

  3. Chiamare IWiaMiniDrv::d rvAcquireItemData. Il contesto dell'elemento WIA passato appartiene all'elemento dello scanner flat, in modo che il driver possa determinare facilmente che l'applicazione intende analizzare usando la piastra flat.

  4. Programmare il dispositivo ed eseguire l'analisi dal letto piatto usando le proprietà dell'elemento flat corrente. Se il driver WIA non è in modalità di scansione flat, dovrebbe tentare di passare a questa modalità per l'analisi. Non esiste alcuna impostazione speciale per l'interruttore dell'applicazione per l'uso del letto piatto. L'uso dell'elemento flatbed per l'analisi è un contratto tra l'applicazione e il driver; sono d'accordo che il letto piatto deve essere usato per il trasferimento dei dati.

Il driver deve usare le proprietà WIA nell'elemento dello scanner flat come impostazioni da applicare alla parte flat dello scanner prima dell'analisi. L'applicazione WIA è necessaria per considerare sempre attendibili le intestazioni dei dati restituiti dal driver WIA. Ad esempio, se uno scanner determina che non può analizzare un'immagine di una larghezza specificata e, di conseguenza, arrotonda il valore a una larghezza che può essere eseguita, il driver deve aggiornare le intestazioni dell'immagine con le informazioni sulla larghezza modificata. Questo aggiornamento garantisce che le informazioni corrette siano disponibili per l'applicazione. Il driver WIA deve tentare di aggiornare le proprietà WIA con le informazioni effettive restituite dal dispositivo.

Analisi avanzata per scanner flat

L'analisi a più aree dal letto flat è possibile anche se la configurazione manuale o tramite il filtro di segmentazione WIA. Si noti che il filtro di segmentazione non è diverso da un'applicazione in ciò che può e non può eseguire. Le stesse procedure descritte per il filtro di segmentazione possono essere eseguite direttamente dall'applicazione per creare elementi figlio per le nuove aree di analisi.