VINCULAR IMAGENS COM BANCO DE DADOS

LOPESKUTI 09/04/2012 10:11:58
#399349
Olá... gostaria de pedir a ajuda de vocês com um pequeno probleminha hehe

Então.. Eu estou desenvolvendo uma aplicação para credenciamento de visitantes em um evento.
Estou no início ainda, eu já consigo incluir, alterar e excluir os dados com a aplicação.

Agora há pouco consegui com a ajuda de muita pesquisa no macoratti.net fazer com que o programa capture uma imagem da webcam. Está capturando normalmente, sem problema e inclusive consigo salvar normalmente.

Porém eu gostaria de vincular cada imagem com um registro, por exemplo:

O visitante de código 123 acabou de chegar, eu quero tirar uma foto dele e incluir no banco de dados (pode ser em uma pasta, porém gostaria de saber como colocar ele pra salvar com o próprio número do registro e vincular isso ao banco de dados).

Estou fazendo várias tentativas aqui, porém me perco no meio.

Alguém poderia me ajudar??

Obrigado.
ALTAIR148 09/04/2012 10:26:48
#399350
Resposta escolhida
Bom dia,

O ideal amigo é você salvar as imagens em uma pasta e salvar no banco apenas o caminho das imagens, se salvar as imagens dentro do banco, ele vai crescer de forma [Ô]monstruosa[Ô] assim prejudicando o desempenho de seu banco de dados.
LOPESKUTI 09/04/2012 10:30:37
#399351
Sim. Eu estive pensando que realmente essa seria a melhor forma.

Você pode me ajudar em como fazer com que ele salve a imagem automaticamente com o número do código?
Pq asim eu posso criar um campo no banco referenciando a imagem né?
ALTAIR148 09/04/2012 10:34:33
#399354
Como você faz para salvar a imagem?
LOPESKUTI 09/04/2012 10:59:43
#399358
Eu usei uma save file dialog... ele abre uma janela pedindo pra eu dar um nome e escolher uma pasta...
ALTAIR148 09/04/2012 11:01:43
#399359
Ok, Posta ai o código do SaveDialog que eu te mostro como pegar o caminho que foi salvo.
LOPESKUTI 11/04/2012 08:35:56
#399549
O botão salvar tá com o seguinte código

Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvar.Click
Dim dados As IDataObject
Dim bmap As Image

[ô] Copia a imagem para o clipboard
SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0)

[ô] Obtem a imagem do clipboard e converte para bitmap
dados = Clipboard.GetDataObject()

If dados.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(dados.GetData(GetType(System.Drawing.Bitmap)), Image)
picCaptura.Image = bmap
fechaJanelaVisualizacao()
btnSalvar.Enabled = False
btnParar.Enabled = False
btnIniciar.Enabled = True

If sfdImage.ShowDialog = System.Windows.Forms.DialogResult.OK Then
bmap.Save(sfdImage.FileName, Imaging.ImageFormat.Bmp)
End If

End If
End Sub


e a save file dialog só tem isso

Private Sub sfdImage_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles sfdImage.FileOk

End Sub
ALTAIR148 11/04/2012 09:25:15
#399560
Dim dados As IDataObject
Dim bmap As Image
Dim Caminho as string
[ô] Copia a imagem para o clipboard
SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0)

[ô] Obtem a imagem do clipboard e converte para bitmap
dados = Clipboard.GetDataObject()

If dados.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(dados.GetData(GetType(System.Drawing.Bitmap)), Image)
picCaptura.Image = bmap
fechaJanelaVisualizacao()
btnSalvar.Enabled = False
btnParar.Enabled = False
btnIniciar.Enabled = True

If sfdImage.ShowDialog = System.Windows.Forms.DialogResult.OK Then
bmap.Save(sfdImage.FileName, Imaging.ImageFormat.Bmp)
Caminho = sfdImage.FileName.ToString
End If

End If


Da forma acima, após salvar a imagem a variavel caminho vai receber o caminho em que a imagem foi salva, agora basta pegar o caminho e salvar no banco de dados.
LOPESKUTI 12/04/2012 08:31:14
#399665
Mas não tem um modo de salvar automaticamente de acordo com o código do registro?
Por exemplo, código 57 salva uma imagem com o nome 57 ?
ALTAIR148 12/04/2012 08:49:03
#399666
Citação:

Por exemplo, código 57 salva uma imagem com o nome 57 ?



Tem sim....

No código abaixo eu pego a imagem do Picturebox e salvo ela com o nome [Ô]IMAGEM[Ô] dentro da unidade [Ô]C:[Ô] e no nome eu coloco a [Ô]hora, minuto e segundo[Ô] para evitar duplicidade, ai nesse caso você pode optar por pegar o nome do visitante, código, cpf... etc...

Dim bmap As Image
Dim Caminho As String
Caminho = [Ô]c:\imagem[Ô] & Format(Date.Now, [Ô]HHmmss[Ô]) & [Ô].jpg[Ô]
bmap = PictureBox1.Image
bmap.Save(Caminho, Imaging.ImageFormat.Bmp)
LOPESKUTI 12/04/2012 17:58:12
#399730
Muito obrigado Altair, você resolveu um problemão !!!

Abraços
Tópico encerrado , respostas não são mais permitidas