Ir para conteúdo
Fórum Script Brasil
  • 0

Como Enviar Img Pelo Winsock


armagedon

Pergunta

11 respostass a esta questão

Posts Recomendados

  • 0
como q faz pra enviar uma img pelo winsock, mas não quero q essa img seja salva no pc de quem recebeu, quero q ela seja exibida no vb, ex:

O pcCliente tem uma img no pc dele, dai envia pro pcServidor, então quero q essa img q veio do pcCliente apareça no vb, e não seja salva no pcServidor.

Uma maneira de se fazer isso seria utilizando as funções GetPixel e SetPixel, da API Win32, que, respectivamente, retorna e define a cor de um determinado pixel. A idéia seria percorrer uma picturebox obtendo a cor de cada pixel e enviar para o destino as coordenadas e a cor do pixel.

Todavia, acho que seria muito mais simples enviar o arquivo todo, o cliente receber, carregar a figura em uma picturebox e imediatamente apagar o arquivo.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

não estou conseguindo tranferir a img, fiz da seguinte maneira:

prjCliente:

Private Sub cmdEnviaImg_click()

Dim x

dim y

dim cor as long

For x = 1 To Me.ScaleX(Picture1.Width, vbTwips, vbPixels)

For y = 1 To Me.ScaleY(Picture1.Width, vbTwips, vbPixels)

cor = GetPixel(Picture1.hdc, x, y)

sckCliente.SendData cor

Next y

Next x

End sub

prjServidor:

Private Sub Form_Load()

Dim cor as long

Dim x

Dim y

End Sub

Private Sub sckServidor_DataArrival(ByVal bytesTotal As Long)

sckServidor.GetData cor

SetPixel me.hdc, x, y, cor

y = y + 1

If y = 500 then //onde 500 é o tamanho q a img vai fikar

x = x + 1

y = 1

End If

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Enviar muitos dados pelo socket faz com que os mesmos cheguem concatenados no destino. O ideal é enviar um dado e esperar por uma resposta do outro computador para só então enviar o próximo dado. Além disso, declarar x e y no evento Load não faz com que eles mantenham seus valores (isso deveria ser colocado no General Declarations, ou declará-las como Static dentro do próprio procedimento). Outra coisa interessante seria enviar a posição (coordenada) em que a respectiva cor deve ser "pintada".

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
valeu Graymalkin, consegui, mas fika muito lento. Resolvi então tranferir o arquivo da img mesmo, mas tem como abrir a img no picturebox quando ela estiver aberta com o 'open arquivo for binary acess as 1'??

Não sei se entendi bem qual é a sua dúvida, mas sim, dá pra abrir a imagem na picturebox ao mesmo tempo que abre o arquivo (na origem, é claro).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...