多くの人が同じような問題を抱えているようですが、私はまだ探しているものを正確に見つけようとはしていません。
したがって、入力画像を読み取り、それをバイト配列に変換するメソッドがあります。
File imgPath = new File(ImageName);
BufferedImage bufferedImage = ImageIO.read(imgPath);
WritableRaster raster = bufferedImage .getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
私が今やりたいのは、それをBufferedImageに戻すことです(この機能が必要なアプリケーションがあります)。「テスト」はバイト配列であることに注意してください。
BufferedImage img = ImageIO.read(new ByteArrayInputStream(test));
File outputfile = new File("src/image.jpg");
ImageIO.write(img,"jpg",outputfile);
ただし、これは次の例外を返します。
Exception in thread "main" java.lang.IllegalArgumentException: im == null!
これは、BufferedImageimgがnullであるためです。これは、BufferedImageからバイト配列への元の変換で、データがjpgとして認識されなくなるように情報が変更/失われたという事実と関係があると思います。
誰かがこれを解決する方法について何か提案がありますか?よろしくお願いします。