Vra

Ek wil 'n papierlose liasseerstelsel te implementeer en is op soek na WIA gebruik met C # vir die beeld verkryging. Daar is 'n hele paar monster projekte op CodeProject, ens, maar na die aflaai elkeen van hulle wat ek kan vind, het ek loop in 'n probleem.

In elkeen van hulle, die verwysing na WIALib is gebreek. Toe ek gaan na "Microsoft Windows Image Acquisition" die enigste weergawe beskikbaar op my ontwikkeling werkstasie voeg as 'n verwysing, (ook die masjien wat dit sal loop) is 2,0.

Ongelukkig elkeen van hierdie voorbeeld projekte blyk te gewees het gekodeerde teen 1.x. Die verwysing gaan in as "WIA" in plaas van "WIALib". Ek het 'n skoot, net die verandering van die naam ruimte invoer, maar dit is duidelik die API is drasties anders.

Is daar enige inligting oor óf die implementering v2.0 of op te gradeer een van hierdie bestaande voorbeeld projekte daar buite?

Was dit nuttig?

Oplossing

Om toegang tot WIA, sal jy nodig het om 'n verwysing by te voeg aan die COM biblioteek, "Microsoft Windows Image Acquisition Biblioteek v2.0" (wiaaut.dll). voeg 'n "met behulp van 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;

(System.Drawing)

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

Dis 'n basiese wyse werk met my flatbed / doc voerder. As jy meer as een dokument / page al moet op 'n slag, daar is waarskynlik 'n beter manier om dit te doen (van wat ek kon sien, hierdie een beeld hanteer net op 'n slag, maar ek is nie heeltemal seker). Terwyl dit is 'n WIA v1 doc, Scott Hans Elman se Coding4Fun artikel op WIA maak 'n paar meer inligting oor hoe om dit vir verskeie bladsye bevat wel, dink ek (ek is nog verder te gaan as wat myself)

As sy vir 'n papierlose kantoor stelsel, kan jy dalk ook kyk na Modi (Office Document Imaging) om al die OCR vir jou doen.

Ander wenke

Hier is hoe om te teiken WIA 1.0 ook so kan jy jou program om Windows Xp skip. Iets wat ek is desperaat op soek na !! Hoe om te ontwikkel met behulp van WIA 1 onder Vista?

Update : Ek is hierdie toevoeging van afsonderlik sedert sy 'n ander antwoord ( 'n jaar later). Ek het geleer XP het WIA 1.0 en Vista het verder WIA2.0. Jy kan WIA 2.0 egter installeer vir Windows XP SP1 + hier .

Ek het toe ook 'n klein biblioteek met kode I iewers op die interweb gevind hier, dit het ook die vermoë om verskeie bladsye skandeer: http://adfwia.codeplex.com/

Dit maak nie behoefte om WIA wees. Ek was meestal op soek na die WIA opstel, want dit bied dieselfde basiese koppelvlak vir verskillende skandeerders. Ek het 3 skandeerders op hierdie rekenaar en die TWAIN bestuurders / sagteware vir almal van hulle suig (soos die sluit van die skerm tydens skandering).

Vir dokument bestuur, ek sien baie uit vir 'n eenvoudige 200dpi gryskleur skanderings, sodat die meeste van die dinge wat in die TWAIN bestuurders is overkill.

Dit gesê, vra hier is deel van my laaste poging om uit te vind hoe om dit te doen in WIA voordat ons na TWAIN.

Nog 'n nota:. Jy moet die WIA 2.0 dll aflaai van Microsoft.com en dan gaan jy na die dll en voeg dit by jou projek

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top