CONVERTER PICTURE EM BINARIO ?

PATRICIALINDA 26/06/2011 18:57:05
#377775
O que quero é salvar uma foto de uma picture-box para binário (arquivo texto) e depois poder carregar de volta em uma picture-box.
KERPLUNK 27/06/2011 11:48:45
#377830
Resposta escolhida
Várias sugestões aqui
LUIZCOMINO 27/06/2011 12:16:24
#377837
basta você abrir a figura em modo binário:

Open CaminhoImagem For Binary As #1


e colocar o conteúdo dentro de uma string.

abraço!
KERPLUNK 27/06/2011 12:18:38
#377839
Citação:

e colocar o conteúdo dentro de uma string.



Se fizer isso, não vai adiantar muito, porque o conteúdo binário não pode ser convertido corretamente para string(nem sempre)
PATRICIALINDA 27/06/2011 20:24:37
#377883
Citação:

:
e colocar o conteúdo dentro de uma string.

Se fizer isso, não vai adiantar muito, porque o conteúdo binário não pode ser convertido corretamente para string(nem sempre)



KERPLUNK
Teria outra solução ?
KERPLUNK 28/06/2011 09:41:03
#377909
Não entendo a necessidade de se salvar uma imagem como texto... mas não, não tem solução, dados binários, não podem ser convertidos para string sem perda de dados.
PATRICIALINDA 28/06/2011 20:16:20
#377982
Citação:

:
Não entendo a necessidade de se salvar uma imagem como texto... mas não, não tem solução, dados binários, não podem ser convertidos para string sem perda de dados.



Sabe o que quero fazer é o seguinte:

Ha um tempo eu fiz um software no estilo do MSN, logo a parte que fica rodando do lado do cliente ele tem um recurso que da um print-screen, assim eu queria que o [Ô]cliente[Ô] enviasse o arquivo JPG para o computador [Ô]server[Ô].

O componente que uso para a comunicação entre as estações é o Winsock.
ANDERSON.GREGOR 28/06/2011 20:31:49
#377983
E o por que ?
Citação:

uma foto de uma picture-box para binário (arquivo texto)



Não conseguir entender......

O seu server vai ser via winsock?
KERPLUNK 29/06/2011 09:19:32
#378002
Mas vc pode enviar dados binários por sockets sem problemas...
PATRICIALINDA 29/06/2011 20:15:06
#378065
Citação:

:
E o por que ? uma foto de uma picture-box para binário (arquivo texto)

Não conseguir entender......

O seu server vai ser via winsock?




O componente que uso para a comunicação entre as estações é o Winsock.

XXXANGELSXXX 29/06/2011 21:27:22
#378073
Qual banco de dados?


utilizo assim.. faça de acordo com suas necessidades..

 
[ô]Gravando
Private Sub CmDGrava_Click()
On Error GoTo ErrorLine
Conecta True
Set RsImagem = New ADODB.Recordset
Set mystream = New ADODB.Stream
mystream.Type = adTypeBinary
Sql = [Ô]SELECT id,catlogo,catlogopresente FROM cadcat where id=[ô][Ô] & TDBGrid1.TextMatrix(TDBGrid1.Row, 0) & [Ô][ô][Ô]
RsImagem.Open Sql, Conexao, adOpenStatic, adLockOptimistic
mystream.Open
mystream.LoadFromFile StrImagem
RsImagem!ID = TDBGrid1.TextMatrix(TDBGrid1.Row, 0)
RsImagem!catlogopresente = [Ô]1[Ô]
RsImagem!catlogo = mystream.Read
RsImagem.Update
mystream.Close
RsImagem.Close
Set RsImagem = Nothing
CmDGrava.Visible = False
btnImgAdd.Visible = True
Conecta False
Exit Sub
ErrorLine:
If Err = -2147217887 Then
msg1.MsgBox [Ô] Imagem muito grande para ser arquivada![Ô] & _
Chr(13) & [Ô] Selecione outra imagem ou redefina a mesma![Ô], vbExclamation, [Ô]Aviso[Ô]
Img.Picture = Picture1.Picture
Call btnImgAdd_Click
Else
MsgError
End If
End Sub


 
[ô]salvando a imagem temporaria para carregar o image
Private Sub PegarImagem()
On Error GoTo ErrorLine
Conecta True
Set RsImagem = New ADODB.Recordset
Dim mystream As New ADODB.Stream
With mystream
.Type = adTypeBinary
cSql = [Ô]SELECT catlogo FROM cadcat where id=[ô][Ô] & TDBGrid1.TextMatrix(TDBGrid1.Row, 0) & [Ô][ô][Ô]
RsImagem.Open cSql, Conexao, adOpenStatic, adLockReadOnly
.Open
.Write RsImagem!catlogo
.SaveToFile App.Path & [Ô]    mp.bmp[Ô], adSaveCreateOverWrite
.Close
Img.Picture = LoadPicture(App.Path & [Ô]    mp.bmp[Ô])
Kill (App.Path & [Ô]    mp.bmp[Ô])
RsImagem.Close
Set RsImagem = Nothing
Conecta False
End With
Exit Sub
ErrorLine:
If Err.Number = 481 Then
Img.Picture = Picture1.Picture
Else
MsgError
End If
End Sub


Espero que esclareça
Tópico encerrado , respostas não são mais permitidas