java.lang.IllegalArgumentException: im == null? - PullRequest
0 голосов
/ 13 ноября 2011

Я на самом деле получаю входной источник из PostgreSQL.Тип столбца таблицы - bytea.Я хочу преобразовать байт обратно в исходное изображение.

BuffredImage bImageFromConvert = ImageIo.read(new ByteArrayInputStream(rsvalue.getBytes(10)));

ImageIO.write(bImageFromConvert, "jpg", new File("D:\\"+ rsvalue.getString(2) +".jpg"));

Ошибка, как показано ниже:

Exception in thread "main" java.lang.IllegalArgumentException: im == null!
    at javax.imageio.ImageIO.write(ImageIO.java:1457)
    at javax.imageio.ImageIO.write(ImageIO.java:1521)
    at my.lincdoc.controller.ProposalController.RetrieveProposalForm(ProposalController.java:66)
    at my.lincdoc.common.App.main(App.java:16)

Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 13 ноября 2011

Документы для ImageIO.read состояния:

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

И если bImageFromConvert равно нулю, вы получите исключение, которое вы показали.Так что это почти наверняка, что происходит.Вы должны посмотреть на данные, возвращенные с rsvalue.getBytes(10) - посмотреть, являются ли они неполными, поврежденными или чем-то подобным.Отправной точкой будет запись его в файл и проверка возможности его открытия с помощью средства просмотра изображений.

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