Ler imagem do banco

2 respostas
E

Boa tarde,

eu tenho o seguinte codigo que estou tentando retornar uma imagem do banco de dados:

public void converteImagem(ActionEvent evento) throws IOException{
        byte[] arquivo = (byte[]) evento.getComponent().getAttributes().get("arquivo");
        String extensao = (String) evento.getComponent().getAttributes().get("extensao");
        
        ByteArrayInputStream bis = new ByteArrayInputStream(arquivo);
        Iterator<?> readers = ImageIO.getImageReadersByFormatName(extensao);
        
        ImageReader reader = (ImageReader) readers.next();
        Object source = bis;
        
        ImageInputStream iis = ImageIO.createImageInputStream(source);
        
        reader.setInput(iis, true);
        ImageReadParam param = reader.getDefaultReadParam();
        
        Image image = reader.read(0, param);
    }

como eu faço para pegar (Image image) e retornar em uma pagina jsf?

grato.

2 Respostas

E

Fazendo dessa forma eu consigo salvar a imagem em um local mas gostaria de visualizar ela direto em minha pagina jsf

BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
        Graphics2D g2 = bufferedImage.createGraphics();
        g2.drawImage(image, null, null);
        File imageFile = new File("D:\\sis\\" + nome);
        ImageIO.write(bufferedImage, extensao, imageFile);
furutani

Você vai ter que criar uma servlet para apresentar a imagem. Tem um exemplo nesse link. http://www.javalobby.org/java/forums/t17096.html

Em JSF tem uma tag que pode usado para isso. Exemplo http://cagataycivici.wordpress.com/2009/11/02/dynamic-images-with-jsf/

Criado 26 de fevereiro de 2012
Ultima resposta 26 de fev. de 2012
Respostas 2
Participantes 2