Me da una matriz de bytes [] en Java que contiene los bytes de una imagen, y debo imprimirla en una imagen. ¿Cómo voy a hacer esto?Objeto Byte Array to Image
Muchas gracias
Me da una matriz de bytes [] en Java que contiene los bytes de una imagen, y debo imprimirla en una imagen. ¿Cómo voy a hacer esto?Objeto Byte Array to Image
Muchas gracias
BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes));
De acuerdo con la documentación de Java, parece que es necesario utilizar the MemoryImageSource Class para poner su matriz de bytes en un objeto en la memoria, y luego usar Component.createImage (ImageProducer) siguiente (que pasa en su MemoryImageSource , que implementa ImageProducer).
Dado que parece que usted ya sabe qué formato del [] matriz de bytes es de (por ejemplo, RGB, ARGB, BGR etc.) es posible que pueda utilizar BufferedImage.setRGB(...), o una combinación de BufferedImage.getRaster() y WritableRaster.setPixels(...) o WritableRaster.setSamples(...). Desafortunadamente, ambos métodos requieren que transforme su byte [] en uno de int [], float [] o double [] según el formato de la imagen.
Si conoce el tipo de imagen y sólo desea generar un archivo, no hay necesidad de obtener una instancia BufferedImage. Simplemente escriba los bytes en un archivo con la extensión correcta.
OutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(path));
out.write(bytes);
} finally {
if (out != null) out.close();
}
From Database.
Blob blob = resultSet.getBlob("pictureBlob");
byte [] data = blob.getBytes(1, (int) blob.length());
BufferedImage img = null;
try {
img = ImageIO.read(new ByteArrayInputStream(data));
} catch (IOException e) {
e.printStackTrace();
}
drawPicture(img); // void drawPicture(Image img);
Esto no responde a la pregunta, la pregunta era para escribir en un archivo de imagen. Esta respuesta es para leer desde un archivo de imagen. ¿Qué pasa con todos los votos? – Sixtoo
El título dice eso, pero la pregunta dice que tienen una matriz de bytes y necesitan una Imagen, eso es lo que hace. –