DIGITALIZAR IMAGEM VB6/VB.NET

ESANTANA93 13/09/2016 11:13:05
#466839
Já verifiquei em alguns posts aqui no fórum, mas não consegui encontrar uma solução para o meu problema. Preciso de alguma API que realize a interface de comunicação com um Scanner e salve a imagem digitalizada. Verifiquei que existem 2 protocolos principais (TWAIN e WIA), os exemplos que eu encontrei foram todos em TWAIN, entretanto preciso garantir a compatibilidade com várias impressoras.


Se alguém puder me auxiliar nisto, agradeço.
DAMASCENO.CESAR 06/11/2016 00:17:06
#468759
se sua dúvida foi sanada, encerre o tópico, por favor



NICKOSOFT 06/11/2016 07:31:03
#468766
via WIA se obtém imagens tanto de scanner como de cam....mas so fiz em vb.net, nunca nem tentei em vb6
Cesar, é o típico usuário q foi comentado no seu outro tópico, se entendo bem a pergunta, ele se refere aos VB[ô]s como o net sento extensão do 6, ai veja a data de cadastro, e veja a qnt de perguntas do mesmo......obteve uma resposta q satisfez já era ou não atendeu 100% já era tmb.....
PLUGSOFTSM 08/11/2016 20:35:01
#468818
Estou te fornecendo o código fonte de uma dll que detecta qualquer tipo de scanner ou webcam instalado na máquina ou na rede. Vale a pena vc dar uma olhada e adequar o código a tua necessidade.
Ele funciona direitinho

Private Sub BtnScanner_Click(sender As Object, e As EventArgs) Handles BtnScanner.Click
Try
Dim CodCli As Long = Val(Text1.Text)
If CodCli = 0 Then Throw New Exception([Ô]Falta informar o código do cliente a ter documentos scaneados anexados na sua ficha....[Ô])
Dim P As New PlugCam.FrmScanner
Dim L As New List(Of PlugCam.FrmScanner.Imagens)
Using ConDB As SqlConnection = New SqlConnection(PDns)
ConDB.Open()
Using RstCmd As SqlCommand = New SqlCommand([Ô]Select Image, Path, Codigo from FotosScanner where Tipo = 1 and CodRef = [ô][Ô] & CodCli & [Ô][ô][Ô], ConDB)
Using Rst As SqlDataReader = RstCmd.ExecuteReader
Do While Rst.Read
Dim X As New PlugCam.FrmScanner.Imagens
X.CodRef = CodCli
X.Tipo = 1
X.NomeArq = IIf(IsDBNull(Rst!Path), [Ô][Ô], Rst!Path)
Dim Img As New MemoryStream(CType(Rst!Image, Byte()))
X.Imagem = System.Drawing.Image.FromStream(Img)
X.Chave = Rst!Codigo
L.Add(X)
Loop
End Using
End Using
End Using
P.ListIniImagens = L
Dim M As New List(Of PlugCam.FrmScanner.ItensMenu)
M.Add(New PlugCam.FrmScanner.ItensMenu With {.Codigo = CodCli, .Menu = [Ô]Cliente[Ô]})
P.ListaMenu = M
AddHandler P.GravarImagens, AddressOf GravarImagens
AddHandler P.ExcluirImagem, AddressOf ExcluirImagem
P.ShowDialog()
P.Dispose()
P = Nothing
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

Friend Sub GravarImagens(ListImg As List(Of PlugCam.FrmScanner.Imagens))
Dim I As Integer = 0
For Each C As PlugCam.FrmScanner.Imagens In ListImg
I += 1
Using ConDB As SqlConnection = New SqlConnection(PDns)
ConDB.Open()
Using RstCmd As SqlCommand = New SqlCommand([Ô]GravarImagemScanner[Ô], ConDB)
RstCmd.CommandType = CommandType.StoredProcedure
RstCmd.Parameters.Add([Ô]@Codigo[Ô], SqlDbType.Int).Value = C.Chave
RstCmd.Parameters.Add([Ô]@Tipo[Ô], SqlDbType.TinyInt).Value = 1 [ô]Clientes
RstCmd.Parameters.Add([Ô]@CodRef[Ô], SqlDbType.VarChar, 15).Value = C.CodRef
RstCmd.Parameters.Add([Ô]@Path[Ô], SqlDbType.VarChar, 75).Value = IIf(C.NomeArq Is Nothing, [Ô][Ô], C.NomeArq)
Dim Img As New MemoryStream
C.Imagem.Save(Img, System.Drawing.Imaging.ImageFormat.Bmp)
Dim ArrImage() As Byte = Img.GetBuffer
RstCmd.Parameters.Add([Ô]@Image[Ô], SqlDbType.Image).Value = ArrImage
Img.Dispose()
Img = Nothing
RstCmd.ExecuteNonQuery()
End Using
End Using
Next
MessageBox.Show([Ô]Gravação efetuada com sucesso!!![Ô], [Ô]Digitalização de Imagens[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub

Friend Sub ExcluirImagem(Codigo As Long)
If Codigo > 0 Then
Using ConDB As SqlConnection = New SqlConnection(PDns)
ConDB.Open()
Using RstCmd As SqlCommand = New SqlCommand([Ô]Delete From FotosScanner where Codigo = [Ô] & Codigo, ConDB)
RstCmd.ExecuteNonQuery()
End Using
End Using
End If
End Sub
Faça seu login para responder