Introduzione ai filtri di elaborazione delle immagini
Il filtro di elaborazione delle immagini è un'estensione WIA. Il filtro di elaborazione delle immagini serve due scopi principali:
Per consentire la separazione del codice di elaborazione delle immagini dal driver. Ad esempio, il filtro di elaborazione delle immagini può essere usato per modificare la luminosità e il contrasto di un'immagine e per eseguire la scrivania e la rotazione. Il filtro di elaborazione dell'immagine si trova nella propria DLL, separato dalla DLL del driver in modalità utente. Il filtro di elaborazione delle immagini riceve dati di immagine non filtrati dal driver in cui esegue il filtro.
Per abilitare le anteprime live accurate. Il filtro di elaborazione delle immagini viene usato da un nuovo componente windows Vista WIA Preview (descritto nella documentazione di Microsoft Windows SDK) che fornisce anteprime live accurate. In questo contesto, "live" significa che un'applicazione non dovrà acquisire nuovamente l'immagine dallo scanner dopo aver modificato alcune impostazioni delle proprietà, descritte più avanti in questa sezione. Le anteprime sono accurate poiché il filtro viene effettivamente eseguito da un componente fornitore nell'immagine di anteprima effettiva anziché solo da un filtro casuale su un'immagine completamente separata.
Per fornire anteprime accurate, un filtro deve implementare le proprietà di luminosità e contrasto almeno. Questa è quindi l'interfaccia utente comune, che fornisce controlli di luminosità e contrasto all'utente, può visualizzare anteprime accurate.
Il filtro di elaborazione delle immagini viene sempre eseguito quando viene analizzata un'immagine. Non è quindi possibile che un'applicazione ottenga l'immagine dallo scanner senza aver applicato prima il filtro di elaborazione delle immagini. Un'applicazione non deve essere a conoscenza del filtro.
Microsoft fornisce il componente WIA Preview che memorizza nella cache l'immagine di anteprima originale e non filtrata acquisita dallo scanner. Il componente Anteprima consente di applicare più volte un filtro a un'immagine senza dover acquisire nuovamente l'immagine dallo scanner. Il componente WIA Preview viene in genere usato per le immagini di anteprima quando un'applicazione consente a un'applicazione di modificare le impostazioni, ad esempio contrasto e luminosità. Mentre l'utente modifica le impostazioni, l'applicazione può visualizzare continuamente l'immagine risultante nel riquadro di anteprima senza dover ripetere l'analisi dell'immagine.
Il filtro di elaborazione delle immagini è un'estensione WIA, in esecuzione come componente COM in-process. Al contrario del filtro di segmentazione, un'applicazione in genere non crea un'istanza del filtro di elaborazione delle immagini chiamando IWiaItem2::GetExtension (descritta nella documentazione di Windows SDK). L'applicazione creerà invece un'istanza del componente WIA Preview, che a sua volta caricherà il filtro di elaborazione delle immagini effettivo usando il metodo IWiaItem2::GetExtension . Il filtro di elaborazione delle immagini viene richiamato automaticamente quando un'applicazione chiama IWiaTransfer::D ownload.
Un filtro di elaborazione delle immagini è associato a un driver e in genere distribuito insieme al driver. Il componente WIA Preview è disponibile in sti.dll e viene fornito con il sistema operativo.
Nella figura seguente viene illustrato il filtro di elaborazione delle immagini caricato dai componenti WIA nel processo dell'applicazione. Si noti che è possibile caricare più di un'istanza del filtro di elaborazione delle immagini nel processo dell'applicazione contemporaneamente, pertanto è necessario prestare attenzione alle scritture di filtro. Ad esempio, nel caso in cui vengano usate variabili globali (statiche), il writer di filtri deve garantire la sincronizzazione appropriata.