我想实现无纸化归档系统,并希望将WIA与C#一起用于图像获取。在CodeProject等上有很多示例项目。但是,在下载了我可以找到的每个示例项目之后,我遇到了一个问题。
在它们的每一个中,对WIALib的引用都被破坏了。当我添加“Microsoft Windows Image Acquisition”作为引用时,开发工作站(以及将运行该软件的计算机)上唯一可用的版本是2.0。
不幸的是,这些示例项目中的每个似乎都已针对1.x进行了编码。该引用以“WIA”代替“WIALib”。我拍了一下,只是更改了 namespace 的导入,但显然API完全不同。
是否有关于实现v2.0或升级这些现有样本项目之一的信息?
最佳答案
要访问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;
(系统绘图)
Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
i.Save(filename)
这是一种基本方法,可与我的平板/文档进纸器一起使用。但是,如果一次只需要一个以上的文档/页面,则可能有更好的方法来完成此操作(据我所知,虽然我不确定,但一次只能处理一个图像)。尽管它是WIA v1文档,但Scott Hanselman的Coding4Fun article on WIA确实包含有关如何在多个页面上执行此操作的更多信息,我认为(我个人还有待进一步)
如果它用于无纸化办公系统,则可能还需要 checkout MODI(办公室文档影像处理)来为您完成所有OCR。
关于c# - 在Vista上使用C#/WIA 2.0版进行扫描,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8966/