Używanie C# / WIA w wersji 2.0 Na Vista do skanowania

Chcę zaimplementować System Archiwizacji bez papieru i chciałem użyć WIA z C# do akwizycji obrazów. Istnieje sporo przykładowych projektów na CodeProject, itp. Jednak po pobraniu każdego z nich, które mogę znaleźć, napotkałem problem.

W każdym z nich odniesienie do WIALib jest złamane. Kiedy idę dodać "Microsoft Windows Image Acquisition" jako odniesienie, jedyna wersja dostępna na mojej stacji roboczej rozwoju (również maszyna, która to uruchomi) jest 2.0.

Niestety, każdy z tych przykładowych projektów wydaje się być zakodowany przeciwko 1.x. odniesienie wchodzi jako " WIA "zamiast " WIALib". Spróbowałem, po prostu zmieniając import przestrzeni nazw, ale najwyraźniej API jest drastycznie inne.

Czy są jakieś informacje na temat wdrożenia wersji 2.0 lub aktualizacji jednego z tych istniejących przykładowych projektów?

Author: skaffman, 2008-08-12

5 answers

Aby uzyskać dostęp do WIA, musisz dodać odniesienie do biblioteki COM, "Microsoft Windows Image Acquisition Library v2.0" (wiaaut.dll). dodaj "using 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.Rysunek)

Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
i.Save(filename)
To jest podstawowy sposób, działa z moim podajnikiem flatbed/Doc. Jeśli jednak potrzebujesz więcej niż jednego dokumentu/strony na raz, prawdopodobnie istnieje lepszy sposób na zrobienie tego(z tego, co widziałem, obsługuje to tylko jeden obraz na raz, chociaż nie jestem do końca pewien). Podczas gdy jest to WIA v1 doc, Scott Hanselman ' S Coding4Fun artykuł na WIA zawiera trochę więcej informacji na temat tego, jak to zrobić dla wielu stron, myślę (Sam jeszcze nie pójdę dalej)

Jeśli chodzi o system biurowy bez papieru, możesz również sprawdzić MODI (Office Document Imaging), aby wykonać wszystkie OCR za Ciebie.

 22
Author: Paul Jenkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-20 11:39:40

Oto jak celować WIA 1.0 również, aby można wysłać aplikację do Windows Xp. Coś, czego desperacko Szukałem!! Jak rozwijac uzywajac WIA 1 pod Vista?

 1
Author: gideon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:27:43

Update : dodaję to osobno, ponieważ jest to inna odpowiedź (rok później). Dowiedziałem się, że XP ma WIA 1.0 A Vista ma WIA2. 0. Możesz jednak zainstalować WIA 2.0 Dla Windows XP Sp1+ z tutaj.

Zrobiłem wtedy też małą bibliotekę z kodem, który znalazłem gdzieś na interweb tutaj, ma również możliwość skanowania wielu stron: http://adfwia.codeplex.com/

 1
Author: gideon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-02 05:57:01

It doesn 't need to be WIA. Głównie patrzyłem na konfigurację WIA, ponieważ oferuje ten sam podstawowy interfejs dla różnych skanerów. Mam 3 Skanery na tej maszynie i sterowniki/oprogramowanie TWAIN dla wszystkich z nich ssać (jak blokowanie ekranu podczas skanowania).

Do zarządzania dokumentami, naprawdę Szukam prostych skanów w skali szarości 200dpi, więc większość rzeczy w sterownikach TWAIN to przesada.

To powiedziane, pytanie tutaj było częścią mojej ostatniej próby, aby dowiedzieć się jak to zrobić w WIA przed przejściem do TWAIN.

 0
Author: J Wynia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-12 16:28:10

Kolejna uwaga: musisz pobrać WIA 2.0 dll z Microsoft.com a następnie przejdź do biblioteki dll i dodaj ją do swojego projektu.

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-28 15:47:17