5

私はWIAAutomationで遊んでいて、一度に複数のページをスキャンするのに苦労しています。誰かがこれを達成する方法について私にいくつかのヒントを与えることができますか?以下は、ドキュメント/画像をスキャンするために使用するコードのサンプルです。

public static byte[] ScanImage(int colourType, string formatId, int dpi)
    {
      _dialog = new CommonDialogClass();
      _scanner = _dialog.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, false, false);     

  foreach (Property item in _scanner.Items[1].Properties)
  {
    switch (item.PropertyID)
    {
      case 6146: //4 is Black-white,gray is 2, colour 1   
        SetProperty(item, colourType);
        break;
      case 6147: //dots per inch/horizontal    
        SetProperty(item, dpi);
        break;
      case 6148: //dots per inch/vertical          
        SetProperty(item, dpi);
        break;
      case 6149: //x point where to start scan   
        SetProperty(item, 0);
        break;
      case 6150: //y-point where to start scan  
        SetProperty(item, 0);
        break;
      case 6151: //horizontal extent        
        SetProperty(item, (int)(8.5 * 100));
        break;
      case 6152: //vertical extent             
        SetProperty(item, 11 * 100);
        break;
    }
  }

  try
  {
    TempPath = System.IO.Path.GetTempPath() + "temp" + DateTime.Now.Ticks;

    ScannedImage = (ImageFile)_scanner.Items[1].Transfer(formatId);
    //System.IO.File.Delete(TempPath);
    ScannedImage.SaveFile(TempPath);

    //Convert image to binary
    Vector vector = ScannedImage.FileData;
    byte[] imgBin = (byte[])vector.get_BinaryData();
    ScannedImageBinary = (byte[])vector.get_BinaryData();

    //ImageFromFile = Image.FromFile(TempPath);
  }
  catch (Exception ex)
  { }

  return ScannedImageBinary;
}
4

1 に答える 1

0

だから、あなたの話しているC#のようです。

この回答を参照してください: Vista で C#/WIA バージョン 2.0 を使用してスキャンする

ADF スキャナーで複数のドキュメントをスキャンするための小さなライブラリを作成しました:
http://adfwia.codeplex.com/

于 2011-09-08T16:06:39.330 に答える