无法从ext数据库中的mysql数据库动态显示blob图像

时间:2019-01-12 21:33:07

标签: java spring-boot itext

我正在尝试使用以下代码在itext表中显示db中的图像

DAO类

    Blob imageBlob = rs.getBlob("VECHICLE_IMAGE");
    byte[] imgData = imageBlob.getBytes(1,(int)imageBlob.length());
    vechileDetailsReportBean.setVechileImageByte(imgData);

控制器类

   PdfPTable nestedTable = new PdfPTable(2);
   nestedTable.addCell(new PdfPCell(new Phrase("Image")));    
   Image image = Image.getInstance(listVechileDetailsReportBean.get(i).getVechileImageByte());                  
   image.scaleAbsolute(300,300);
   nestedTable.addCell(new PdfPCell(image));    

数据库描述

enter code here
     [Vechile detail Table][1]

INS_AGENT   varchar(40) YES         
VECHICLE_IMAGE  mediumblob  YES         
VECHILE_TYPE    varchar(40) YES         
VECHILE_TYPEID  int(11) YES         

遇到错误

       RegNo:::S234442::Image::com.mysql.cj.jdbc.Blob@22c4fafe
      java.io.IOException: The byte array is not a recognized imageformat.
      at com.itextpdf.text.Image.getInstance(Image.java:473)
      at com.itextpdf.text.Image.getInstance(Image.java:374)

请建议我如何动态显示db中itext中的图像

1 个答案:

答案 0 :(得分:0)

在这种情况下,您应该始终首先尝试(作为测试)手动提取图像,并使用itext从文件系统中读取图像。如果可行,则blob /字节数组无法正确传输图像。如果不起作用,则图像本身很可能有些奇怪。