【问题标题】:Windows Image Acquisition: How to hide scanner setup windowWindows 图像采集:如何隐藏扫描仪设置窗口
【发布时间】:2011-04-12 05:00:44
【问题描述】:

我使用 WIA 库来扫描我的应用程序中的图像。我可以在我的应用程序中以编程方式设置扫描仪设置(colorfull、grayscell、dpi....),而不是每次都向最终用户显示扫描设置吗?

我使用下一个代码从扫描仪获取图像

        public ImageFile Scan()
        {
        try
        {
            CommonDialog dialog = new CommonDialog();

            ImageFile image = dialog.ShowAcquireImage(
                WiaDeviceType.ScannerDeviceType,
                WiaImageIntent.ColorIntent,
                WiaImageBias.MaximizeQuality,
                WIA.FormatID.wiaFormatJPEG,false,false,false);

            return image;
        }
        catch (COMException ex)
        {
            if (ex.ErrorCode == -2145320939)
            {
                throw new ScannerNotFoundException();
            }
            else
            {
                throw new ScannerException("COM Exception", ex);
            }
        }
    }

【问题讨论】:

    标签: c# wia image-scanner


    【解决方案1】:

    是的,但是您必须编写一堆代码。从 DeviceManager.DeviceInfos 开始枚举可用的设备。您需要用户提供一些指导来选择她打算使用的特定设备。从 DeviceInfos.Item 产生一个 DeviceInfo,调用它的 Connect 方法。这会产生一个设备,调用它的 ExecuteCommand 方法。这会产生一个 Item,调用它的 Transfer 方法。这会产生您需要的 ImageFile。

    【讨论】:

    • 我能否在需要时显示显示设置窗口,然后保存所有信息。我可以以哪种形式保存有关设置的数据?
    • CommonDialog中有一堆对话框。他们将设置您传递的对象的属性。对话框完成后,您可以读取这些属性。
    • SDK 文档中充斥着少量代码,请充分利用它们。 msdn.microsoft.com/en-us/library/ms630826%28VS.85%29.aspx
    • 感谢您提供有用的链接。我可以序列化 CommonDialog 类来驱动和使用它吗?
    • COM 对象不能被序列化。如果您有任何其他问题,请创建一个新主题,这不是论坛。
    猜你喜欢
    • 1970-01-01
    • 2015-09-16
    • 2011-12-25
    • 2021-08-27
    • 2015-05-02
    • 2013-03-17
    • 2021-10-24
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多