Domanda

Vorrei implementare un paperless sistema di archiviazione e stava cercando di utilizzare WIA con C# per l'acquisizione delle immagini.Ci sono alcuni progetti di esempio su CodeProject, etc.Tuttavia, dopo il download di ogni uno di loro che riesco a trovare, ho incontrato un problema.

In tutti e In ciascuno di essi, del riferimento a WIALib è rotto.Quando vado ad aggiungere "Acquisizione di Immagini di Windows" come riferimento, l'unica versione disponibile sul mio workstation di sviluppo (anche la macchina che esegue questo) è la 2.0.

Purtroppo, ogni uno di questi esempi di progetti sembrano essere stati codificati contro 1.x.Il riferimento va in "WIA" invece di "WIALib".Mi è preso un colpo, cambiando solo lo spazio dei nomi di importazione, ma è chiaro che l'API è drasticamente diverso.

C'è qualche informazione in attuazione v2.0 o l'aggiornamento di uno di questi progetti di esempio che ci sia?

È stato utile?

Soluzione

Per accedere WIA, è necessario aggiungere un riferimento alla libreria COM, "Acquisizione di Immagini di Windows Biblioteca v2.0" (wiaaut.dll).aggiungere un "uso WIA;"

const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
CommonDialogClass wiaDiag = new CommonDialogClass();
WIA.ImageFile wiaImage = null;

wiaImage = wiaDiag.ShowAcquireImage(
        WiaDeviceType.UnspecifiedDeviceType, 
        WiaImageIntent.GrayscaleIntent, 
        WiaImageBias.MaximizeQuality, 
        wiaFormatJPEG, true, true, false);

WIA.Vector vector = wiaImage.FileData;

(Di sistema.Il disegno)

Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
i.Save(filename)

Questo è un modo di base, funziona con il mio flatbed/doc alimentatore.Se avete bisogno di più di un documento/pagina alla volta, però, probabilmente c'è un modo migliore per farlo (da quello che ho potuto vedere, questo gestisce solo un'immagine alla volta, anche se non sono del tutto sicuro).Mentre è un WIA v1 doc, Scott Hanselman s Coding4Fun articolo su WIA contiene qualche info in più su come fare per più pagine, penso (sto ancora andare oltre me stesso)

Se la sua per un ufficio senza carta di sistema, si potrebbe desiderare di controllare anche MODI (Office Document Imaging) per fare tutte le OCR.

Altri suggerimenti

Heres come target WIA 1.0 anche così è in grado di spedire app per Windows Xp.Qualcosa che stavo disperatamente cercando!!Come sviluppare utilizzando WIA 1 sotto Vista?

Aggiornamento:Sto aggiungendo questo separatamente dalla sua una risposta diversa (un anno dopo).Ho imparato XP ha WIA 1.0 e Vista in poi ha WIA2.0.Tuttavia, è possibile installare WIA 2.0 per Windows XP Sp1+ da qui.

Poi ho fatto anche una piccola biblioteca con il codice che ho trovato da qualche parte sul interweb qui, ha anche la capacità di eseguire la scansione di più pagine:http://adfwia.codeplex.com/

Non bisogno per essere WIA.Mi era quasi al WIA installazione, perché offre la stessa interfaccia di base per diversi scanner.Ho 3 scanner su questa macchina e TWAIN driver/software per tutti schifo (come il blocco dello schermo durante la scansione).

Per la gestione dei documenti, sto cercando semplice 200 dpi in scala di grigi scansioni, quindi la maggior parte delle cose nella TWAIN driver è eccessivo.

Detto questo, chiedendo qui è stato parte del mio ultimo tentativo di capire come farlo in WIA prima di passare alla TWAIN.

Un'altra nota:È necessario scaricare il WIA 2.0 dll da Microsoft.com e quindi individuare la dll e aggiungerlo al progetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top