Использование C # / WIA версии 2.0 в Vista для сканирования - PullRequest
22 голосов
/ 12 августа 2008

Я хочу внедрить систему безбумажной регистрации и собирался использовать WIA с C # для получения изображения. Есть несколько примеров проектов на CodeProject и т. Д. Однако после загрузки каждого из них, который я могу найти, я столкнулся с проблемой.

В каждом из них ссылка на WIALib нарушена. Когда я добавляю «Microsoft Windows Image Acquisition» в качестве справочного материала, единственная версия, доступная на моей рабочей станции разработки (а также на компьютере, на котором она будет работать), - это 2.0.

К сожалению, каждый из этих примеров проектов, по-видимому, был закодирован против 1.x. Ссылка идет как "WIA" вместо "WIALib". Я сделал снимок, просто изменив импорт пространства имен, но очевидно, что API резко отличается.

Есть ли какая-либо информация о внедрении v2.0 или об обновлении одного из этих существующих примеров проектов?

Ответы [ 5 ]

22 голосов
/ 20 сентября 2008

Чтобы получить доступ к WIA, вам нужно добавить ссылку на библиотеку COM, «Microsoft Windows Image Acquisition Library v2.0» (wiaaut.dll). добавить «используя 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)

Это простой способ работы с планшетным / док-устройством. Если вам нужно более одного документа / страницы за раз, возможно, есть лучший способ сделать это (из того, что я мог видеть, это обрабатывает только одно изображение за раз, хотя я не совсем уверен). Несмотря на то, что это документ WIA v1, статья Скотта Хансельмана Coding4Fun о WIA содержит больше информации о том, как сделать это для нескольких страниц, я думаю (я сам еще не пошел дальше)

Если это для безбумажной офисной системы, вы также можете воспользоваться MODI (Office Document Imaging), чтобы выполнить все операции распознавания за вас.

1 голос
/ 28 августа 2011

Обновление : я добавляю это отдельно, так как это другой ответ (год спустя). Я узнал, что в XP есть WIA 1.0, а в Vista - WIA2.0. Однако вы можете установить WIA 2.0 для Windows XP Sp1 + из здесь .

Затем я также создал небольшую библиотеку с кодом, который я нашел где-то здесь, во внутренней сети, он также может сканировать несколько страниц: http://adfwia.codeplex.com/

1 голос
/ 23 июля 2010

Вот как настроить таргетинг на WIA 1.0, чтобы вы могли отправить свое приложение на Windows Xp. Что-то, что я отчаянно искал !! Как разработать с использованием WIA 1 под Vista?

0 голосов
/ 28 сентября 2008

Еще одно примечание: вам нужно скачать WIA 2.0 dll с Microsoft.com, а затем перейти к dll и добавить его в свой проект.

0 голосов
/ 12 августа 2008

Это не нужно , чтобы быть WIA. В основном я смотрел на настройку WIA, потому что она предлагает один и тот же базовый интерфейс для разных сканеров. У меня есть 3 сканера на этом аппарате и драйверы / программное обеспечение TWAIN для них всех отстой (например, блокировка экрана во время сканирования).

Для управления документами я действительно ищу простые сканирования в оттенках серого с разрешением 200 точек на дюйм, так что большинство вещей в драйверах TWAIN излишне.

Тем не менее, задание здесь было частью моей последней попытки выяснить, как это сделать в WIA, прежде чем перейти к TWAIN.

...