Comment convertir l'octet [] en BufferedImage en Java
La conversion debyte[]
enBufferedImage
implique l'utilisation deInputStream
etImageIO.read
comme suit:
InputStream in = new ByteArrayInputStream(imageInByte); BufferedImage bImageFromConvert = ImageIO.read(in);
L'exemple suivant lit un fichier image nommé «darksouls.jpg», le convertit en tableau d'octets, puis réutilise le tableau d'octets converti, le reconvertit en un nouveauBufferedImage
, et l'enregistre à nouveau dans un nouveau nom «new-darksouls.jpg».
package com.example.image; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; public class ImageTest { public static void main(String[] args) { try { byte[] imageInByte; BufferedImage originalImage = ImageIO.read(new File( "c:/darksouls.jpg")); // convert BufferedImage to byte array ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(originalImage, "jpg", baos); baos.flush(); imageInByte = baos.toByteArray(); baos.close(); // convert byte array back to BufferedImage InputStream in = new ByteArrayInputStream(imageInByte); BufferedImage bImageFromConvert = ImageIO.read(in); ImageIO.write(bImageFromConvert, "jpg", new File( "c:/new-darksouls.jpg")); } catch (IOException e) { System.out.println(e.getMessage()); } } }