CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Alquien Ha Trabajado Con Gdtwain ?
(1/1)
racavi1981:
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 ---Private Sub cargar_imagen()Dim sql As String = "SELECT imagen FROM refracciones WHERE id_refraccion='" & TextBox1.Text & "'" Dim cmd As OleDbCommand = New OleDbCommand(sql, MyConnection) Dim b() As Byte b = cmd.ExecuteScalar() If (b.Length > 0) Then Dim stream As New MemoryStream(b, True) stream.Write(b, 0, b.Length) 'Display image DrawToScale(New Bitmap(stream))----------------->error: "Parameter is not valid." stream.Close() End If End Sub Private Sub DrawToScale(ByVal img As Image) PictureBox1.Image = New Bitmap(img) End Sub
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:
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 ---Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim nImageID As Integer Dim ms As Array If twain1.TwainOpenDefaultSource() Then If twain1.TwainGetState() = "4" Then InitScanConfig() twain1.TwainSetImageLayout(0.1, 0.3, 2, 5.3) twain1.TwainSetCurrentResolution(150) twain1.TwainSetCurrentPixelType(Gdtwain.TwainPixelType.TWPT_RGB) 'RGB twain1.TwainSetCurrentBitDepth(4) ' 24 bpp nImageID = twain1.TwainAcquireToImageID(Me.Handle.ToInt32) If nImageID <> 0 Then Call DisplayNativeImage() Call twain1.SaveAsByteArray(ms, 100000, "jpg") Call twain1.CloseImage(nImageID) End If Call twain1.TwainCloseSourceManager(Me.Handle.ToInt32) 'MsgBox("Done !") Else MsgBox("can't open default source, twain state is: " & Trim(Str(twain1.TwainGetState))) End If End If Button3.Enabled = True End Sub
Nebire:
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
Kargarof:
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:
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.
Navegación
Ir a la versión completa