Pregunta

Quiero implementar un sistema de archivo sin papel y buscaba usar WIA con C# para la adquisición de imágenes.Hay bastantes proyectos de muestra en CodeProject, etc.Sin embargo, después de descargar todos los que pude encontrar, me encontré con un problema.

En todos y cada uno de ellos se rompe la referencia a WIALib.Cuando agrego "Adquisición de imágenes de Microsoft Windows" como referencia, la única versión disponible en mi estación de trabajo de desarrollo (también la máquina que ejecutará esto) es 2.0.

Desafortunadamente, cada uno de estos proyectos de muestra parece haber sido codificado en 1.x.La referencia es "WIA" en lugar de "WIALib".Lo intenté, simplemente cambiando la importación del espacio de nombres, pero claramente la API es drásticamente diferente.

¿Existe alguna información sobre la implementación de la versión 2.0 o sobre la actualización de uno de estos proyectos de muestra existentes?

¿Fue útil?

Solución

Para acceder a WIA, deberá agregar una referencia a la biblioteca COM, "Biblioteca de adquisición de imágenes de Microsoft Windows v2.0" (wiaaut.dll).agregue "usando 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;

(Sistema.Dibujo)

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

Esa es una forma básica, funciona con mi alimentador plano/doc.Sin embargo, si necesita más de un documento/página a la vez, probablemente haya una mejor manera de hacerlo (por lo que pude ver, esto solo maneja una imagen a la vez, aunque no estoy del todo seguro).Si bien es un documento WIA v1, el de Scott Hanselman Artículo de Coding4Fun sobre WIA Creo que contiene más información sobre cómo hacerlo para varias páginas (todavía tengo que ir más allá)

Si se trata de un sistema de oficina sin papel, es posible que también desee consultar MODI (Office Document Imaging) para realizar todo el OCR por usted.

Otros consejos

A continuación se explica cómo apuntar a WIA 1.0 también para que pueda enviar su aplicación a Windows Xp.Algo que estaba buscando desesperadamente!!¿Cómo desarrollar usando WIA 1 en Vista?

Actualizar:Estoy agregando esto por separado ya que es una respuesta diferente (un año después).Aprendí que XP tiene WIA 1.0 y Vista en adelante tiene WIA2.0.Sin embargo, puede instalar WIA 2.0 para Windows XP Sp1+ desde aquí.

Luego también creé una pequeña biblioteca con código que encontré en algún lugar de Internet aquí, también tiene la capacidad de escanear varias páginas:http://adfwia.codeplex.com/

no lo hace necesidad ser WIA.Principalmente estuve mirando la configuración WIA porque ofrece la misma interfaz básica para diferentes escáneres.Tengo 3 escáneres en esta máquina y los controladores/software TWAIN para todos ellos apestan (como bloquear la pantalla durante el escaneo).

Para la gestión de documentos, realmente busco escaneos simples en escala de grises de 200 ppp, por lo que la mayoría del contenido de los controladores TWAIN es excesivo.

Dicho esto, preguntar aquí fue parte de mi último intento de descubrir cómo hacerlo en WIA antes de pasar a TWAIN.

Otra nota:Debe descargar el dll WIA 2.0 de Microsoft.com y luego buscar el dll y agregarlo a su proyecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top