Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Como obtener una imagen directamente de un escaner

Estas en el tema de Como obtener una imagen directamente de un escaner en el foro de .NET en Foros del Web. Hola buenas, agradeceria cualquier ayuda en este tema. Estas son mis premisas: - Estoy usando visual studio 2010 (en realidad da igual, lo importante es ...
  #1 (permalink)  
Antiguo 03/05/2013, 03:36
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 10 años, 10 meses
Puntos: 1
Como obtener una imagen directamente de un escaner

Hola buenas, agradeceria cualquier ayuda en este tema.

Estas son mis premisas:
- Estoy usando visual studio 2010 (en realidad da igual, lo importante es que estoy programando en .net).
- Tengo un programa que escanea imagenes (lo hace de maravilla).
- Tambien convierte estas imagenes escneadas (.tif) a pdf.
- Para realizar el escaneo utilizo la libreria EzTwain (con la cual se puede controlar casi cualquier dispositivo de escaneres e impresoras, muy util y bueno).
- Para convertir a pdf uso la libreria itextsharp (esto es totalmente irrelevante, solo lo comento como curiosidad).


Problema:

- Con la libreria EzTwain puedo escanear (me va fenomenal). Pero me da mala espina, ya que cuando uso los metodos de esta libreria se abre una ventana en la cual puedo elegir el tipo de escaneo etc. Bueno, el caso es que por lo visto esa ventana es la que proporcionan los driver de cada escaner (dependiendo de que escaner use saldra una ventanita u otra).

- Lo que yo quiero hacer es que mediante codigo yo pueda darle unas instrucciones al escaner, que escanee con una resolucion concreta, elegir la superficie de escaneo etc., lo que harian esas ventanas de los driver, pero mediante codigo, de modo que al activar el metodo que fuese el escaner escaneara con las instrucciones que se definieron en el programa.

Para matizar mas, que si por ejemplo ese metodo se llamase al pulsar un boton de un formulario .net el esnaner escanea de forma automatica una imagen de 300dpi, en color, y k se guarde en la ruta C:\imagenesEscaneadas.

Por cualquier duda sobre el asunto preguntad.
¿Hay alguna manera de hacer esto?
- SI ¿Como lo hago?
- No ¿Hay algo parecido a lo que yo quiero?


De antemano gracias por su colaboracion.
  #2 (permalink)  
Antiguo 06/05/2013, 12:30
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Como obtener una imagen directamente de un escaner

Holaaaaaa, buenaaaaaaaaas. Soy yo otra vez, el enrrea.

Tengo una buena noticia.

- Ya lo consegui (siiiiiiii)


Bueno, vamos al grano ¿ok?

Para poder capturar una imagen de un escaner usaremos la fantastica libreria eztwain (distribuida por Dosadi).

Al lio. Primero nos descargamos esta INPRESCINDIBLE herramienta llamada EZTWAIN.DLL (hay un monton de versiones, id probando, a lo largo de esta semana dare mas detalles de la version que yo estoy usando (gratis) etc) y la instalamos (quizas no haga falta instalarla, informaros de la version que os descargueis, y no os asusteis, NO ES COMPLICADO SI OS PONEIS A ELLO EN SERIO). Tras lo cual agregamos la clase de eztwain a nuestro proyecto (esta clase vendra en la descarga, y nos permitira acceder a los metodos de la dll) y nos ponemos a programar como locos. He aqui mi codigo con el cual consigo escanear de forma automatica:

(AVISO: este metodo es llamado desde un boton, que es la forma "aconsejable" de usar estos metodos. En mi caso el codigo lo uso para controlar escaneres de tipo 'flatbed', no tipo ADF(buscad en google que son cada uno) pero para ponerlo ADF es solo cambiar una sola linea, tranquilos. Si no os funciona contactad conmigo en mi corre o aqui en el foro (preferiblemente en el foro))



'------METHOD ESCANEARPRO------
Private Sub escanearPro(ByVal ruta1, ByVal ruta2, ByVal nombreArchivo, ByVal tamannoEscaneo)
'Al terminar el escaneo se generara un pdf, no un tif
Dim fileName As String 'nombre del archivo que generaremos
Dim N As Integer 'numero de escaneos seguidos que realizaremos, lo suyo es que sea 1, pero esto es a gusto del consumidor
N = 1
fileName = String.Format(rutaDondeSeGuardaraElArchivo + nombreArchivo + ".pdf", 1) 'ponemos la ruta, el nombre del archivo y el tipo de archivo (en este caso .pdf)
Call EZTwain.LogFile(1)
Call EZTwain.SetHideUI(1)
If EZTwain.OpenDefaultSource() Then
Call EZTwain.SelectFeeder(1) 'esta linea es la que define que es un escaner flatbed, para ponerlo ADF el 1 lo ponemos false (si no funciona ponganse en contacto conmigo)
Call EZTwain.SetPixelType(2) 'yo escaneo en color (provad con otros numeros para ver otros tipos de escaneo, como el blanco-negro)
Call EZTwain.SetBitDepth(1)
Call EZTwain.SetResolution(300) 'resolucion de la imagen
Call EZTwain.SetAutoScan(1) 'ESTA LINEA ES NUESTRA SALVADORA, ya que es la encargada de decirle al escaner que escanee y punto, sin mostrar ventanas adicionales ni nada, que escanee con los parametros que le hemos dado y ya esta

Call EZTwain.SetRegion(0, 0, 10.1, 10.1) 'area que decidimos escanear




EZTwain.AcquireToFilename(Me.Handle, fileName) 'esta linea realiza el escaneo y la creacion del documento
End If
If EZTwain.LastErrorCode() <> 0 Then
Call EZTwain.ReportLastError("Unable to scan.")
End If

End Sub





Pues eso es todo, por cualquier dudilla avisadme, y estare encantado de resolverlas (en la medida de lo posible, tened en cuenta que fui yo el que hizo la pregunta del foro).

De todos modos gracias por visitar este tema.

Nos vemos en el foro, adiooooooooooos
  #3 (permalink)  
Antiguo 21/05/2013, 06:33
 
Fecha de Ingreso: mayo-2013
Ubicación: Resistencia, Chaco
Mensajes: 18
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Respuesta: Como obtener una imagen directamente de un escaner

Tendrás a mano el código? Yo necesito algo así porque quiero implementarlo en un servidor, ya que la aplicación de Epson que tiene lo cuelga mal equipo. Muchas Gracias!
  #4 (permalink)  
Antiguo 22/05/2013, 02:13
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Como obtener una imagen directamente de un escaner

Hola

Deberias saber que ya puse el codigo arriba, con eso sneas directamente de un escaner.

Pero si necesitas otra parte del codigo especificame cual es.

Y por casualidad ¿podrias decirme que dll de eztwain estas usando para vb.net?

Es que no encuentro ninguna que pueda ser añadida a mi proyecto (vamos, que se me ha bloqueado mi proyecto por que me expiro la verson de prueba de eztwain).
Me descargue la version libre de extwain pero vb.net no me deja añadirla como referencia ¿que hago?

PD: el codigo como tal funciona a las mil maravillas, dime lo que necesitas y te lo paso.
  #5 (permalink)  
Antiguo 22/05/2013, 02:24
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: Como obtener una imagen directamente de un escaner

Cita:
Iniciado por cbr20 Ver Mensaje

Y por casualidad ¿podrias decirme que dll de eztwain estas usando para vb.net?

Es que no encuentro ninguna que pueda ser añadida a mi proyecto (vamos, que se me ha bloqueado mi proyecto por que me expiro la verson de prueba de eztwain).
Me descargue la version libre de extwain pero vb.net no me deja añadirla como referencia ¿que hago?
Siempre puedes pedir que te alarguen el periodo de prueba.

La versión gratuita entiendo que es la versión 2. Es muy posible que no esté preparada para agregarse a proyectos de .net: quizás sea un componente COM y requiera de crear una DLL que haga de wrapper para usarla en proyectos de .NET.
__________________
Aviso: No se resuelven dudas por MP!
  #6 (permalink)  
Antiguo 22/05/2013, 04:47
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Como obtener una imagen directamente de un escaner

ESO, eso que has dicho, lo de usar otra dll para usar la de eztwain, eso me lo han recomendado hacer un par de sitios, pero nadie me explica como puedo hacerlo.

¿Como podria hacer eso?

Necesito saber:
- ¿Como crear una dll que funcione de wrapper?
- ¿Como lograr que esa dll que he creado llame a la otra dll si no puedo ponerla en el proyecto de visual studio 2010?

Si respondes me habras salvado la vida

Etiquetas: net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 04:39.