Olá :)
estou fazendo um trabalho com sockets em que preciso enviar e exibir uma imagem. Na verdade, é um chat, e essa imagem deve ser a imagem de exibição da pessoa. No código do botão "abrir imagem", por exemplo, eu usei um FileChooser e coloquei o arquivo em um FileImageInputStream. Queria saber se posso enviar esse tipo de stream através de socket, ou se preciso rasterizar a imagem e/ou transformá-la em um array de bytes e depois em FileImageInputStream novamente. Já tentei dos dois jeitos e não funcionava.
Esse era o código que eu estava usando (sem sockets e sem FileImageInputStream) só pra testar se estava exibindo a imagem num jLabel, mas quando eu executava não dava nenhum erro, mas o jLabel simplesmente não exibia a imagem:private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = fc.showOpenDialog(this);
if(result == JFileChooser.CANCEL_OPTION)
file = null;
else {
file = fc.getSelectedFile();
String nome = file.getName();
FileOutputStream imagem = new FileOutputStream(nome);
byte[] b = new byte[(int)file.length()];
imagem.flush();
imagem.write(b);
imagem.close();
ImageIcon image = new ImageIcon(b);
jLabel1.setIcon(image);
}
} catch (IOException ex) {
Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
}
}
Se puderem me ajudar, obrigada :)