• Lunes 29 de Abril de 2024, 14:22

Autor Tema:  Alquien Ha Trabajado Con Gdtwain ?  (Leído 1958 veces)

racavi1981

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Alquien Ha Trabajado Con Gdtwain ?
« en: Jueves 13 de Marzo de 2008, 18:00 »
0
Buenos dias,

Estoy trabajando en un proyecto que se basa en escanear imagenes para posteriormente insertarlas en la base de datos SQL

Investigando por Internet, consegui un activex llamado: "Gdtwain" que permite la interaccion entre Vb.net y el scanner.

Entre algunas de las opciones que ofrece este activex, es la de guardar la imagen escaneada en un BitArray.

Cuando Inserto el Array no me arroja ningun error, pero cuando quiero recuperar la imagen, me genera un error.

Aqui pongo el codigo.

Código: Text
  1. Private Sub cargar_imagen()
  2. Dim sql As String = "SELECT imagen FROM refracciones WHERE id_refraccion='" & TextBox1.Text & "'"
  3.  
  4.         Dim cmd As OleDbCommand = New OleDbCommand(sql, MyConnection)
  5.         Dim b() As Byte
  6.         b = cmd.ExecuteScalar()
  7.  
  8.         If (b.Length > 0) Then
  9.             Dim stream As New MemoryStream(b, True)
  10.             stream.Write(b, 0, b.Length)
  11.             'Display image
  12.             DrawToScale(New Bitmap(stream))----------------->error: "Parameter is not valid."
  13.             stream.Close()
  14.         End If
  15.     End Sub
  16.     Private Sub DrawToScale(ByVal img As Image)
  17.         PictureBox1.Image = New Bitmap(img)
  18.     End Sub
  19.  

alguien podria indicarme a que se debe este error, es primera vez que trabajo insertando imagenes en la base de datos.

Muchas Gracias de antemano.

racavi1981

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Alquien Ha Trabajado Con Gdtwain ?
« Respuesta #1 en: Martes 25 de Marzo de 2008, 07:37 »
0
ya consegui la solucion. :comp:

La posteo aqui en caso de que alguien llegara a presentar el mismo problema que yo tuve  :D

Código: Text
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         Dim nImageID As Integer
  3.         Dim ms As Array
  4.  
  5.         If twain1.TwainOpenDefaultSource() Then
  6.  
  7.             If twain1.TwainGetState() = "4" Then
  8.                 InitScanConfig()
  9.  
  10.                 twain1.TwainSetImageLayout(0.1, 0.3, 2, 5.3)
  11.                 twain1.TwainSetCurrentResolution(150)
  12.                 twain1.TwainSetCurrentPixelType(Gdtwain.TwainPixelType.TWPT_RGB) 'RGB
  13.                 twain1.TwainSetCurrentBitDepth(4) ' 24 bpp
  14.  
  15.  
  16.                 nImageID = twain1.TwainAcquireToImageID(Me.Handle.ToInt32)
  17.                 If nImageID <> 0 Then
  18.                     Call DisplayNativeImage()
  19.                     Call twain1.SaveAsByteArray(ms, 100000, "jpg")
  20.                     Call twain1.CloseImage(nImageID)
  21.  
  22.                 End If
  23.  
  24.                 Call twain1.TwainCloseSourceManager(Me.Handle.ToInt32)
  25.                 'MsgBox("Done !")
  26.             Else
  27.                 MsgBox("can't open default source, twain state is: " & Trim(Str(twain1.TwainGetState)))
  28.             End If
  29.         End If
  30.         Button3.Enabled = True
  31.     End Sub
  32.  

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Alquien Ha Trabajado Con Gdtwain ?
« Respuesta #2 en: Martes 22 de Abril de 2008, 21:39 »
0
Lo que has conseguido es una barbaridad...

Meter imágenes en una base de datos es una pérdida de feciciencia de la base de datos... mete 1000 imágenes en la base de datos y luego haz un backup, comprenderás lo que te digo...

Lo adecuado es guardar las imágenes en una carpeta y luego en sql lo que guardas es el nombre y la ruta, si necsitas que las imágenes sean privadas y el acceso adonde están no es restringido, puedes o codificarlo y guardar en la base de datos la clave o comprimir los archivo (por ejemplo en rar) y asignar una sola clave al rar...

Tal vez si sólo vas a guardar un puñado de iconos tendría un pase....

saludos
«Ma non troppo»
----> ModoVacaciones = False<----

Kargarof

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Alquien Ha Trabajado Con Gdtwain ?
« Respuesta #3 en: Miércoles 18 de Junio de 2008, 10:32 »
0
Buenas, tengo un problema similar, pero es muy anterior. Estoy investigando sobre las librerías y demás para poder conectar el scanner al programa de visual basic.net.

Quisiera saber si alguien puede decirme como utilizar la librería y que librería es la mejor, gzafiro@gmail.com.

Agradecería mucho la ayuda ya qye tengo que terminar el proyecto en breve y estoy muuuuy atascado. Gracias de antemano.

aftermind

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Alquien Ha Trabajado Con Gdtwain ?
« Respuesta #4 en: Lunes 4 de Agosto de 2008, 18:44 »
0
Hola amigo, gracias por tu código, está excelente, solo te pido si puedes poner el código de cómo insertaste la imagen en la base de datos, ya intenté pero simplemente no he podido, Muchas gracias.