Использование C#/WIA версии 2.0 в Vista для сканирования

StackOverflow https://stackoverflow.com/questions/8966

Вопрос

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

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

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

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

Это было полезно?

Решение

Чтобы получить доступ к WIA, вам необходимо добавить ссылку на библиотеку COM «Библиотека сбора изображений Microsoft Windows версии 2.0» (wiaut.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;

(Система.Рисование)

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

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

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

Другие советы

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top