5

基本的に、私が行っているのは、画像をバイト配列に変換して処理し、バイト配列を取得した後、画像に変換し直すことです。これがバイト配列を画像に変換する方法です。

InputStream in = new ByteArrayInputStream(result); //result is the byte array
BufferedImage bImageFromConvert;
try {
   bImageFromConvert = ImageIO.read(in);
   ImageIO.write(
      bImageFromConvert, watermark_ext, new File(extracted_name_path));
} catch (Exception e) {
   return e.getMessage();
}

これで、このコードはPNGまたはJPG画像で完全に機能しますが、BMP画像で使用すると、bImageFromConvertがnullであるという例外が返されます。誰かが私にそれがなぜそれをするのかを知るのを手伝ってもらえますか?みんな、ありがとう。

4

1 に答える 1

1

答えはJavadocにあります:

現在登録されているものの中から自動的に選択されたImageReaderを使用して、提供されたImageInputStreamをデコードした結果としてBufferedImageを返します。登録されたImageReaderがストリームを読み取ることができると主張していない場合、nullが返されます。

SOに関するこの以前の投稿はより詳細です。

メソッドjavax.imageio.ImageIO.getImageReadersBySuffix()が役立つ場合があります。

于 2013-03-07T19:33:18.927 に答える