Eu consigo salvar a imagem como bytes[]; O banco está configurado certo, como blob.
A questão é que não consigo fazer puxar do banco a imagem.
`Toda hora essa bendita mensagem.
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException`
Segue o código pra salvar e puxar a imagem:
public static BufferedImage setImagemDimensao(String caminhoImg, Integer imgLargura, Integer imgAltura) { Double novaImgLargura = null; Double novaImgAltura = null; Double imgProporcao = null; Graphics2D g2d = null; BufferedImage imagem = null, novaImagem = null; try { //— Obtém a imagem a ser redimensionada — imagem = ImageIO.read(new File(caminhoImg)); } catch (IOException ex) { System.out.println(ex.getMessage()); Logger.getLogger(ManipularImagem.class.getName()).log(Level.SEVERE, null, ex); } //— Obtém a largura da imagem — novaImgLargura = (double) imagem.getWidth(); //— Obtám a altura da imagem — novaImgAltura = (double) imagem.getHeight(); //— Verifica se a altura ou largura da imagem recebida é maior do que os — //— parâmetros de altura e largura recebidos para o redimensionamento — if (novaImgLargura >= imgLargura) { imgProporcao = (novaImgAltura / novaImgLargura);//calcula a proporção novaImgLargura = (double) imgLargura; //— altura deve <= ao parâmetro imgAltura e proporcional a largura — novaImgAltura = (novaImgLargura * imgProporcao); //— se altura for maior do que o parâmetro imgAltura, diminui-se a largura de — //— forma que a altura seja igual ao parâmetro imgAltura e proporcional a largura — while (novaImgAltura > imgAltura) { novaImgLargura = (double) (–imgLargura); novaImgAltura = (novaImgLargura * imgProporcao); } } else if (novaImgAltura >= imgAltura) { imgProporcao = (novaImgLargura / novaImgAltura);//calcula a proporção novaImgAltura = (double) imgAltura;
//--- se largura for maior do que o parâmetro imgLargura, diminui-se a altura de ---
//--- forma que a largura seja igual ao parâmetro imglargura e proporcional a altura ---
while (novaImgLargura > imgLargura) {
novaImgAltura = (double) (--imgAltura);
novaImgLargura = (novaImgAltura * imgProporcao);
}
}
novaImagem = new BufferedImage(novaImgLargura.intValue(), novaImgAltura.intValue(), BufferedImage.TYPE_INT_RGB);
g2d = novaImagem.createGraphics();
g2d.drawImage(imagem, 0, 0, novaImgLargura.intValue(), novaImgAltura.intValue(), null);
return novaImagem;
}
Pra puxar:
public static byte[] getImgBytes(BufferedImage image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { ImageIO.write(image, “JPEG”, baos); } catch (IOException ex) { //handle it here… not implemented yet… } InputStream is = new ByteArrayInputStream(baos.toByteArray()); return baos.toByteArray(); }
Estes códigos, peguei na internet. E estou usando ele como base pra essa parte, já que nunca utilizei essa manipulação de dados ( com img ) no bd.