2010-09-14 235 views
2

我使用WIA庫在我的應用程序中掃描圖像。我可以在我的應用程序中設置掃描儀設置(colorfull,grayscell,dpi ....)programmaticaly,並且不會每次將掃描設置顯示給最終用戶?Windows圖像採集:如何隱藏掃描儀設置窗口

我用下面的代碼,從掃描儀

 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); 
      } 
     } 
    } 

回答

2

是得到的圖像,但你必須寫一串代碼。從DeviceManager.DeviceInfos開始枚舉可用的設備。您需要用戶的一些指導來選擇她打算使用的特定設備。這將從DeviceInfos.Item生成DeviceInfo,並調用其Connect方法。這產生一個Device,調用它的ExecuteCommand方法。這產生一個Item,調用它的Transfer方法。這會產生您需要的ImageFile。

+0

我可以在需要時顯示顯示設置窗口,然後保存所有信息。在哪種形式下我可以保存這些關於設置的數據嗎? – Polaris 2010-09-14 15:12:27

+0

CommonDialog中有一堆對話框。他們將設置您傳遞的對象的屬性。您可以在對話框完成後讀取這些屬性。 – 2010-09-14 15:15:20

+0

你能給我一點代碼和平的例子嗎? – Polaris 2010-09-14 15:18:01