我实际上从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)
任何人都可以帮助我?
答案 0 :(得分:2)
ImageIO.read
州的文档:
如果没有已注册的ImageReader声称能够读取生成的流,则返回null。
如果bImageFromConvert
为空,您将获得您显示的异常。所以几乎可以肯定发生了什么。您应该查看从rsvalue.getBytes(10)
返回的数据 - 看看它是不完整的,损坏的还是类似的。一个起点是将其写入文件,看看是否可以使用图片浏览器打开它。