Olá pessoal, gostaria de saber como enviar imagens pelo socket e que essa imagem seja exibida num JLabel. Na verdade são várias imagens que são capturadas por um robot dentro de um Time(50,new ActionListener(){}) e enviadas pra outro computador pra aparecer no JLabel ou me dÊ outra sugestão melhor. Falô!!!1
Enviar imagem via socket colocar ela num JLabel
5 Respostas
A
Ixi socket, estou tentando enviar uma mensagem de um sistema para o outro usando socket e ainda não consegui.
E como não sei na pratica essas comunicação, não poderei te ajudar muito.
Mais se ideia ajudar…, já tentou usar Web service? eu ainda não usei mais já fui indicado a usar, talvez nesse seu caso te ajude.
vc precisa converter ela em blob e depois enviar o blob por socket.
conselho: vai ficar lerdo pra caramba…
V
procure ver sobre a classe ImageIO do java, ela pode ler uma imagem vindo de um Stream então isso pode ajudar um pouco você já que virá vira soket xD
Essa é a classe cliente
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package assistence;
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.swing.Timer;
/**
*
* @author USUARIO
*/
public class Cliente {
private Robot robot;
private Timer timer;
public Cliente() throws AWTException, UnknownHostException, IOException {
robot = new Robot();
timer = new Timer(150, new Aa());
timer.start();
}
//JLabel lab = new JanelaSe
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws AWTException, UnknownHostException, IOException {
Cliente cliente = new Cliente();
}
}
class Aa implements ActionListener{
Socket cliente = null;
OutputStream outi = null;
private Robot robot;
BufferedImage image;
public Aa() throws AWTException, UnknownHostException, IOException {
robot = new Robot();
cliente = new Socket("127.0.0.1",12345);
outi = cliente.getOutputStream();
}
@Override
public void actionPerformed(ActionEvent e) {
try {
image = robot.createScreenCapture(new Rectangle(0,0, 800, 800));
ImageIO.write(image, "gif", outi);
if(!cliente.isOutputShutdown())
System.exit(0);
} catch (UnknownHostException ex) {
Logger.getLogger(JanelaCliente.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(JanelaCliente.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
timer = new Timer(50, new ActionListener() {
ServerSocket servidor = new ServerSocket(12345);
Socket cliente = servidor.accept();
// Image im = null;
//BufferedImage image = null;
InputStream ima = cliente.getInputStream();
@Override
public void actionPerformed(ActionEvent e) {
try {
im = ImageIO.read(ima).getScaledInstance( 800, 800, Image.SCALE_SMOOTH);
tela.setIcon(new ImageIcon(im));
System.out.println("oioioi");
} catch (IOException ex) {
Logger.getLogger(JanelaServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
Ixi socket, estou tentando enviar uma mensagem de um sistema para o outro usando socket e ainda não consegui.
E como não sei na pratica essas comunicação, não poderei te ajudar muito.
Mais se ideia ajudar…, já tentou usar Web service? eu ainda não usei mais já fui indicado a usar, talvez nesse seu caso te ajude.
Nem eu fera, não sei qual é o mistério!!!
Criado 6 de julho de 2013
Ultima resposta 10 de jul. de 2013
Respostas 5
Participantes 4
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo