Resgatar imagem de banco de dados

4 respostas
F

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.

4 Respostas

Jonathan_Medeiros

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.

Jonathan_Medeiros

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 :laughing:

Criado 19 de janeiro de 2017
Ultima resposta 29 de jan. de 2017
Respostas 4
Participantes 2