画像が byte[] として保存されているデータベースを使用しています。byte[] データから画像を取得するために、この関数を作成しました。fileName は正しく、データは null ではありません。
public void convert(String fileName , byte[] data) throws IOException
{
File myFile = new File(fileName);
System.out.println("filename is " + file);
ByteArrayInputStream baisData = new ByteArrayInputStream(data);
BufferedImage imag= ImageIO.read(baisData);
if(imag == null)
{
System.out.println("imag is empty");
}
ImageIO.write(imag, "jpg", myFile);
System.out.println("Image file written successfully");
}
しかし、このコードを実行すると、この出力が得られます。
filename is C:\Users\Abhishek\Desktop\Eclipse\try\i1.jpg
imag is empty
Exception in thread "main" java.lang.IllegalArgumentException: image == null!
at javax.imageio.ImageTypeSpecifier.createFromRenderedImage(ImageTypeSpecifier.java:925)
at javax.imageio.ImageIO.getWriter(ImageIO.java:1591)
at javax.imageio.ImageIO.write(ImageIO.java:1520)
at TempConvert.convert(TempConvert.java:32)
at TempConvert.main(TempConvert.java:60)
「imag」オブジェクトが null である理由と、コードを完全に実行するにはどうすればよいか教えてください。よろしくお願いします。