Во-первых, COM-объект wiaaut.dll нужно зарегистрировать в системе, делается это следующим вызовом (из-под администратора):
Всё, теперь в проекте доступно пространство имен WIA, в котором расположены все необходимые интерфейсы. Посмотреть их можно, щелкнув правой кнопкой по "WIA" в Ссылках, и выбрав "Просмотр в обозревателе решений". Например, для получения цветного изображения со сканера в формате BMP с минимизацией размера получаемого файла используется следующий код:
C:\Windows\system32\regsvr32.exe C:\Windows\system32\wiaaut.dllТеперь в проекте C# добавляем ссылку на COM-объект. В русскоязычной MS Visual C# Express 2010 это "Обозреватель решений" -> Выбираем текущее решение и проект -> "Ссылки" -> Клик правой кнопкой -> "Добавить ссылку", где переходим на вкладку "COM" и ищем "Microsoft Windows Image Acquisition Library 2.0", после чего нажимаем "ОК".
Всё, теперь в проекте доступно пространство имен WIA, в котором расположены все необходимые интерфейсы. Посмотреть их можно, щелкнув правой кнопкой по "WIA" в Ссылках, и выбрав "Просмотр в обозревателе решений". Например, для получения цветного изображения со сканера в формате BMP с минимизацией размера получаемого файла используется следующий код:
WIA.CommonDialog dlg = new WIA.CommonDialog();Вообще с WIA Automation как-то грустно всё в плане толковой документации и рабочих примеров, особенно на C#, или, не дай Бог, на C++ (есть кое-что на мсдн, но этого явно недостаточно). Как её использовать на чистом (не CLR) C++ я вообще не понял: ни заголовочного файла, ни tlb или idl я так и не нашел, а без них работать становится совсем неудобно.
WIA.ImageFile img = dlg.ShowAcquireImage(WIA.WiaDeviceType.ScannerDeviceType, WIA.WiaImageIntent.ColorIntent,
WIA.WiaImageBias.MinimizeSize, "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}", false, true, false);
а как такое же реализовать на С++ Builder не покажеш?
ОтветитьУдалитьКогда-то я пытался сделать это на С++, у меня так и не получилось
Удалить