Sockets - Melhor forma de serializar uma imagem

9 respostas
E

Olá…Estou desenvolvendo um software que captura a tela de um PC-servidor e envia, via socket a um PC-cliente. A imagem capturada é uma BufferedImage e o ideal seria enviá-la assim, todavia a BufferedImage não implementa Serializable…Alguém sabe qual seria a melhor maneira de enviar esta imagem?

Não queria enviar o array de inteiros que representam os pixels porque preciso instanciar um array desses a cada imagem enviada. Na terceira imagem estou a heap…

9 Respostas

M

Ué, se vc está usando sockets pq não pega o outputStream dele, passa os bytes da imagem e depois os lê na sua classe servidor?

Guitar_Men

como disse o moises.trovo, envie os bytes da imagem, mas se você quer fazer algo direito, monte um protocolozinho dizendo onde começa e onde termina a mensagem, para vc não montar a imagem errada. Uma vez eu implementei da seguinte forma:
1 - Defini um protocolo para enviar o tamanho do array que seria minha imagem.
2 - Defini um protocolo para delimitar onde começa e termina minha mensagem.

Então sempre que ia enviar a imagem primeiro enviava o tamanho, para eu montar o array do outro lado com tudo zerado e evitar “sujeiras” na imagem e depois enviava byte a byte a imagem.

E

E do outro lado, como monto uma BufferedImage a partir dos bytes recebidos?

Já teria usado essa solução se eu soubese que dá pra criar um BufferedImage a partir de um array de bytes…

Guitar_Men

Em uma rápida googleada achei…

http://www.portaljava.com/forum/posts/list/43010.page

E

Pois é…Acabo de encontrar também…
Vou tentar essa solução, se eu tiver problemas, volto :wink:

Valeu pela ajuda…

Marky.Vasconcelos

Essa ideia é mais ou menos como o sistema do LogMeIn ?

E

Cara…Confesso que desconheço o software mencionado…Vou dar uma olhada…

E

Dei uma olhada no software mencionado…De fato, estava fazendo algo assim…

murieta

e como transformar um bufferedImage em um array de byte???

Criado 12 de março de 2008
Ultima resposta 5 de ago. de 2008
Respostas 9
Participantes 5