Pessoal alguém pode me ajudar , eu tenho uma aplicação desktop pronta, só o que falta é regata as imagens do banco de dados (mysql). salvo o array de bites em um campo blob, mas não conseguido trazer de volta.
Resgatar imagem de banco de dados
F
4 Respostas
Segue abaixo método para recuperar imagem, eu utilizo jLabel para apresentação da mesma.
public void retornaImagem(InputStream is, JLabel label, int lar, int alt) throws FileNotFoundException, IOException, SQLException {
if (is != null) {
int len;
int size = 1024;
byte[] buf;
if (is instanceof ByteArrayInputStream) {
size = is.available();
buf = new byte[size];
len = is.read(buf, 0, size);
} else {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
buf = new byte[size];
while ((len = is.read(buf, 0, size)) != -1) {
bos.write(buf, 0, len);
}
buf = bos.toByteArray();
}
ImageIcon im = new ImageIcon(buf);
im.setImage(im.getImage().getScaledInstance(lar, alt, Image.SCALE_DEFAULT));
label.setIcon(im);
} else {
label.setIcon(null);
}
}
Na view eu faço a chamada passando os parâmetros para o método (imagem do banco, label de apresentação, largura da imagem, altura da imagem):
private void preencherImagem() throws IOException, FileNotFoundException, SQLException{
jLImagem.setIcon(null);
retornaImagem(modelo.getImagem().getBinaryStream(), jLImagem, 210, 200);
}
F
Obrigado pela atenção, mas testei aqui não aconteceu nada.
Você deve estar fazendo alguma coisa da maneira errada, ou a maneira que você armazena a imagem em seu BD não é suportado pelo método.
F
Consegui 
Criado 19 de janeiro de 2017
Ultima resposta 29 de jan. de 2017
Respostas 4
Participantes 2