Создать изображение из BLOB с помощью ImageIO? - PullRequest
1 голос
/ 01 декабря 2011

Я пытался создать изображение из BLOB.Я пытаюсь следующий код, но он не работает на шаге:

ImageIO.write(image, "JPG", iio);) 

image is null.Пожалуйста, дайте мне какие-либо предложения.

 byte[] imgData = null;
 if (rs.next ())
 {
   Blob img  = rs.getBlob(1);
   imgData = img.getBytes(1,(int)img.length());
   File f1 = new File(fillFilePath); //fillFilePath = path where image want to store
   BufferedImage image = ImageIO.read(new ByteArrayInputStream(imgData));
   ImageOutputStream iio = ImageIO.createImageOutputStream(f1);
   ImageIO.write(image, "JPG", iio);
 }

Как создать изображение из BLOB с помощью ImageIO?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Из JavaDoc на ImageIO.read(InputStream):

Если ни один зарегистрированный ImageReader не утверждает, что может прочитать результирующий поток, возвращается значение null.

Кажется, вашBLOB-объект не представляет формат изображения, который ImageIO может понять.В каком формате хранится изображение, хранящееся в BLOB-объекте?

0 голосов
/ 28 февраля 2017

Ниже код работает для меня. Я могу получить BLOB (оракул) / двоичный файл (улей) из улья:

InputStream is=rs.getBinaryStream(1);

toImage(is,"C:\\hive_image.png");

public void toImage(InputStream is,String imagePath) throws IOException
{

    BufferedImage bufferedImage=ImageIO.read(is);
    ImageIO.write(bufferedImage, "png", new File(imagePath));

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...