Preciso saber como eu faço para recuperar em uma ImageView JavaFX a imagem salva em Array no banco sql.
O codigo para gravar que usei é esse
public void setImagem(String caminho) throws IOException {
BufferedImage originalImage = ImageIO.read(new File(caminho));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos);
baos.flush();
this.imagem = baos.toByteArray();
}
e para recuperar e exibir no imageview eu estou tentando usar este:
public BufferedImage getImagem(byte[] bytes) throws IOException {
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
Iterator<?> readers = ImageIO.getImageReadersByFormatName("jpg");
// ImageIO is a class containing static methods for locating
// ImageReaders
// and ImageWriters, and performing simple encoding and decoding.
ImageReader reader = (ImageReader) readers.next();
Object source = bis;
ImageInputStream iis = ImageIO.createImageInputStream(source);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
BufferedImage image = reader.read(0, param);
// got an image file
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null),
BufferedImage.TYPE_INT_RGB);
// bufferedImage is the RenderedImage to be written
Graphics2D g2 = bufferedImage.createGraphics();
g2.drawImage(image, null, null);
/*
* File imageFile = new File("C:\\newrose2.jpg");
* ImageIO.write(bufferedImage, "jpg", imageFile);
*
* System.out.println(imageFile.getPath());
*/
return image;
}
O projeto inteiro encontra-se no seguinte link.