首页 / 知识

关于.net:在Vista上使用C#/ WIA 2.0版进行扫描

2023-04-12 02:00:00

关于.net:在Vista上使用C#/ WIA 2.0版进行扫描

Using C#/WIA version 2.0 on Vista to Scan

我想实现无纸化归档系统,并希望将WIA与C#一起用于图像获取。在CodeProject等上有很多示例项目。但是,在下载了我可以找到的每个示例项目之后,我遇到了问题。

在每一个中,对WIALib的引用均被破坏。当我添加" Microsoft Windows Image Acquisition"作为参考时,开发工作站(以及将运行该软件的计算机)上唯一可用的版本是2.0。

不幸的是,这些示例项目中的每个似乎都已针对1.x进行了编码。该引用以" WIA"代替" WIALib"。我拍了一下,只是更改了名称空间的导入,但是显然API完全不同。

是否存在有关实施v2.0或升级这些现有示例项目之一的信息?


要访问WIA,您需要添加对COM库" Microsoft Windows Image Acquisition Library v2.0 "(wiaaut.dll)的引用。
添加"使用WIA; "

1
2
3
4
5
6
7
8
9
10
11
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;

(系统绘图)

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

那是一种基本方法,可与我的平板/文档进纸器一起使用。但是,如果一次只需要一个以上的文档/页面,则可能有更好的方法(据我所知,虽然我不确定,但一次只能处理一个图像)。尽管它是WIA v1文档,但Scott Hanselman \\的有关WIA的Coding4Fun文章确实包含有关如何在多个页面上执行此操作的更多信息,我想(我还没有走得更远)

如果用于无纸化办公系统,则可能还需要签出MODI(办公室文档影像处理)来为您完成所有OCR。


更新:我将其单独添加,因为其答案不同(一年后)。我了解到XP拥有WIA 1.0,而Vista以后具有WIA2.0。但是,您可以从此处安装Windows XP Sp1的WIA 2.0。

然后,我还使用在互联网上某处找到的代码制作了一个小型库,它还具有扫描多个页面的能力:
http://adfwia.codeplex.com/


这里还介绍了如何定位WIA 1.0,以便您可以将应用程序发布到Windows Xp。我拼命寻找的东西!
如何在Vista下使用WIA 1进行开发?


另一个注意事项:您必须从Microsoft.com下载WIA 2.0 dll,然后浏览到该dll并将其添加到您的项目中。


它不一定是WIA。我主要在看WIA设置,因为它为不同的扫描仪提供了相同的基本界面。我在这台机器上有3个扫描仪,并且TWAIN驱动程序/软件都被吸住了(例如在扫描过程中阻塞了屏幕)。

对于文档管理,我实际上是在寻找简单的200dpi灰度扫描,因此TWAIN驱动程序中的大多数内容都是过分的。

也就是说,在这里进行询问是我在转到TWAIN之前在WIA中弄清楚该如何做的最后一次尝试的一部分。


扫描用于下载项目

最新内容

热门文章

推荐文章

标签云

猜你喜欢