java中的字节到图像转换

时间:2013-11-05 08:10:52

标签: java bytearray javax.imageio

我正在尝试将Image转换为Byte Array并将其保存在数据库中。图像到字节转换和字节到图像转换使用ImageIO方法在将其保存到数据库之前完全正常。但是当我从Database ImageIO检索字节时返回null。

FileInputStream fis = new FileInputStream(picturePath);

BufferedImage image = ImageIO.read(new File(picturePath));
BufferedImage img = Scalr.resize(image, Scalr.Mode.FIT_EXACT, 124, 133, Scalr.OP_ANTIALIAS);

ByteArrayOutputStream ByteStream = new ByteArrayOutputStream();        
ImageIO.write(img, "jpg", ByteStream);
ByteStream.flush();

byte[] imageBytes = ByteStream.toByteArray();
ByteStream.close();

PersonImage = imageBytes;

ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(PersonImage);
BufferedImage ImageForBox = ImageIO.read((InputStream)byteArrayInputStream);            
PersonImageBox.setIcon(new ImageIcon((Image)ImageForBox));

上面的代码是我在DB中保存图片字节之前所做的。我调整Image的大小,然后将其转换为字节,然后转换为其他方式并在JLabel中显示它,它工作正常。但是当我从数据库中检索字节并使用相同的代码时,即

ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(PersonImage); // PersonImage are bytes from dB.
BufferedImage ImageForBox = ImageIO.read((InputStream)byteArrayInputStream);            
PersonImageBox.setIcon(new ImageIcon((Image)ImageForBox));

在这种情况下,ImageIO返回null。请帮忙。

0 个答案:

没有答案