2008-08-12 6 views
21

필자는 종이없는 파일링 시스템을 구현하고 이미지 수집을 위해 WIA와 C#을 사용하려고했습니다. CodeProject에는 꽤 많은 샘플 프로젝트가 있습니다. 그러나 찾을 수있는 모든 것을 다운로드 한 후에 문제가 발생했습니다.Vista에서 C#/WIA 버전 2.0을 사용하여 스캔

각각 하나 하나에서 WIALib에 대한 참조가 깨졌습니다. "Microsoft Windows Image Acquisition"을 참조로 추가하면 내 개발 워크 스테이션에서 사용할 수있는 유일한 버전 (2.0 이상)도 사용할 수 있습니다.

불행히도 이러한 샘플 프로젝트는 모두 1.x에 대해 코딩 된 것으로 보입니다. 이 참조는 "Wialib"대신 "WIA"로 사용됩니다. 나는 네임 스페이스 가져 오기를 변경하는 장면을 찍었지만 API는 분명히 다르다.

v2.0을 구현하거나 기존 샘플 프로젝트 중 하나를 업그레이드하는 데 관한 정보가 있습니까?

+0

빠른 질문 :

내가 그때도 내가 여기 interweb 어딘가에 발견 코드와 함께 작은 도서관을 만들어, 그것은 또한 여러 페이지를 스캔 할 수있는 능력을 가지고 있습니다. WIA가 절대적으로 필요합니까? 또는 Twain과 함께 할 수 있습니까? Twain이 괜찮 으면 기부 할 수있는 코드가 있습니다. –

답변

21

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; 

(System.Drawing) 기본 방법 그게

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

내 플랫 베드/문서 공급 장치와 함께 작동합니다. 한 번에 두 개 이상의 문서/페이지가 필요하다면 더 좋은 방법이있을 것입니다 (완전히 볼 수는 없지만 볼 수있는 것으로부터 한 번에 하나의 이미지 만 처리합니다). WIA v1 문서인데 Scott Hanselman의 Coding4Fun article on WIA에는 여러 페이지를 처리하는 방법에 대한 정보가 더 포함되어 있습니다. (필자는 아직 그 이상으로 나아갈 수 없습니다)

종이없는 오피스 시스템 , MODI (Office Document Imaging)를 통해 모든 OCR을 수행 할 수도 있습니다.

+0

나는 이것을 줄 것이다. OCR을 제대로 사용하지 않는 것보다 유용한 정보를 얻을 수있는 곳은 어디에도 없습니다. 한 번만 사용하면됩니다. 그것은 참조 된, API를 통해 파고 수 있습니다. –

+5

그 마법 GUID 대신 System.Drawing.Imaging.ImageFormat.Jpeg.Guid.ToString ("B"). – Lars

+5

또는 Interop.WIA에 정의 된 GUID를 사용할 수 있습니다 .dll FormatID.wiaFormatJPEG –

0

은 (는)이 WIA가 아닙니다. 저는 다른 스캐너에 대해 동일한 기본 인터페이스를 제공하기 때문에 대부분 WIA 설정을 조사하고있었습니다. 나는이 기계에 3 개의 스캐너를 가지고 있으며 TWAIN 드라이버/소프트웨어는 모두 스캔 중에 화면을 차단하는 것과 같이 빨기도합니다.

문서 관리를 위해 필자는 단순한 200dpi 회색조 스캔을 찾고 있으므로 TWAIN 드라이버의 대부분은 과도합니다.

그런데 묻는 것은 TWAIN으로 넘어 가기 전에 WIA에서 어떻게해야 할지를 알아내는 마지막 시도의 일부였습니다.

0

다른 메모 : Microsoft.com에서 WIA 2.0 dll을 다운로드 한 다음 dll을 찾아 프로젝트에 추가해야합니다.

1

업데이트 : 나는 그것의 다른 대답 (나중에 년) 이후 별도로 추가하고 있습니다. XP에는 WIA 1.0이 있고 Vista에는 WIA2.0이 있다는 것을 배웠습니다. 그러나 Windows XP Sp1 + 용 WIA 2.0은 here에서 설치할 수 있습니다. http://adfwia.codeplex.com/