VISUALIZAR IMAGENS DE DIVERSOS FORMATOSNO VB6

DENNERFOX 28/05/2013 10:32:50
#424138
Pessoal, estou com uma dificuldade, preciso pegar uma imagem que esta salva no meu banco de dados SQL e trazer para uma aplicação do vb6. OBS: essa imagem pode ter sido salva no banco em qualquer formato (bmp, tiff, jpeg, gif, png...) pois uso uma plicação VB.NET para salvar.

Já li diversos artigos sobre como vou fazer isso, e ja cheguei bem perto, preciso converter essa imagem que vem do banco para um formato que o vb reconhece(bmp, jpeg ou gif). O mais perto que cheguei foi utilizar a biblioteca do GDIPLUS para que eu possa fazer isso.

Estou usando esse código para pegar a imagem.


Private Sub CarregarImagem()
On Error GoTo errorHandler
If (m_img Is Nothing) Then
Set m_img = New GDIPImage
End If
m_img.FromFile Dir1 & [Ô]\[Ô] & File1 [ô]nessa parte eu passo de onde vem a imagem, no meu caso do banco
Dim gfx As New GDIPGraphics
Picture1.Picture = LoadPicture([Ô][Ô])
gfx.FromHDC Picture1.hDC
gfx.DrawImagePointLv m_img, 0, 0
gfx.Dispose
Image1.Picture = Picture1.Image
Exit Sub

errorHandler:

MsgBox [Ô]Ocorreu um erro ao carregar este arquivo: [Ô] & Err.Description, vbInformation
Set m_img = Nothing
Exit Sub
End Sub

Eu estou utilizando procedure para fazer a conexão com o banco e trazer a imagem. Só estou fazendo isso porque tenho imagens de vários formatos, mas as imagens (jpg, bmp e gif) abrem normal.
DENNERFOX 28/05/2013 10:59:29
#424140
Só para melhor intendimento de como está funcionando.

CmADO.CommandText = [Ô]SpMostrarImagem[Ô]
CmADO.Parameters.Refresh
CmADO(1) =
CmADO(2) =
CmADO(3) =
CmADO(4) =
RsADO.CursorType = adOpenStatic
RsADO.Open CmADO
If Not RsADO.EOF Then
picNormal.Picture = LoadPicture()
picNormal.DataField = Empty
Set picNormal.DataSource = RsADO
picNormal.DataField = RsADO!documento.Name [ô]Aqui eu passo o arquivo do banco
End If

Se a imagem for do formato TIF por exemplo da esse erro.

Unable to bind to field or DataMember:DOCDIG
DENNERFOX 29/05/2013 10:39:18
#424190
Obrigado a todos que pelo menos entraram no tópico e pensaram que poderiam me ajudar. Consegui resolver o problema e fazer funcionar da seguinte forma.

Carreguei o arquivo que estava no banco SQL para a pasta do sistema assim:

ints = RsADO.Fields([Ô]DocDig[Ô]).ActualSize
bytImg = RsADO.Fields([Ô]DocDig[Ô]).GetChunk(ints)
Open [Ô]E:\caminho\Arquivo[Ô] For Binary As #1
Put #1, , bytImg()
Close #1


Depois usei o GDIPlus para tratar a imagem que estava na maquina de forma que o picture visualize qualquer formato de imagem.

m_img.FromFile [Ô]E:\caminho\Arquivo[Ô]
picNormal.Picture = LoadPicture([Ô][Ô])
gfx.FromHDC picNormal.hDC
gfx.DrawImagePointLv m_img, 0, 0
gfx.Dispose
Exit Sub
End If


Para mim funcionou e se caso alguém precisar.

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