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

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

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

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

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

Ответов (5)

Решение

Чтобы получить доступ к 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), чтобы сделать все оптическое распознавание текста за вас.

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

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

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

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

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

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

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