多くの人が同様の問題を抱えていることがわかりましたが、私が探しているものを見つけようとしていません。Java:BufferedImageからバイト配列まで
だから、私は、入力画像を読み取り、バイト配列に変換する方法があります:私は今、何をしたいか
File imgPath = new File(ImageName);
BufferedImage bufferedImage = ImageIO.read(imgPath);
WritableRaster raster = bufferedImage .getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
を、それが戻ってBufferedImageに変換している(私はのためのアプリケーションを持っています私はこの機能が必要です)。 "test"はバイト配列であることに注意してください。
BufferedImage img = ImageIO.read(new ByteArrayInputStream(test));
File outputfile = new File("src/image.jpg");
ImageIO.write(img,"jpg",outputfile);
しかし、これは次の例外を返します。バッファ画像のimgがnullであるため、
Exception in thread "main" java.lang.IllegalArgumentException: im == null!
これがあります。私は、BufferedImageからバイト配列への私の元の変換では、情報が変更/失われ、データがもはやjpgとして認識されなくなるという事実と関係があると私は思う。
誰もこれを解決する方法に関する提案はありますか?大変に感謝します。
:ここ
はサイズヒントに関するいくつかのリンクありなし –
ここでjpgを使う特別な理由はありますか? – hguser
close()が何もしなかった場合、flush()自体を呼び出すため、* before * toByteArray()を呼び出す必要があります。 – EJP