2016-07-28 14 views
1

Javaのバイト配列をJPEGから変換したい。コードの下で私の要求が間違っています。Javaのjpegからバイトに変換

私が実行すると、間違ったバイト番号が与えられます。 JPEGのサイズは845.941バイトです。しかし、jpegbytesにサイズ2 359 296バイトを返します。どのようにして正しいバイト値にすることができますか?私は、BufferedImageクラスが間違っていると思う。

+2

jpegは圧縮データです。 jpegが「正しいサイズ」であると思うなら、ファイルサイズを取得し、イメージを 'BufferedImage'に読み込まないでください。 – fabian

+0

どのような 'Image'クラスを使用していますか? [JDK](https://docs.oracle.com/javase/8/docs/api/java/awt/Image.html)に 'read'メソッドがありません – 4castle

+0

@ 4castleクラスは' javax .imageio.ImageIO'、私はOPがタイプミスを起こしたと思う。 – Sam

答えて

0

FileInputStreamの内容をByteArrayOutputStreamに書き込み、toByteArray()を呼び出すことで、任意のファイルをバイト配列に書き込むことができます。

public byte[] fileToBytes(String filename) throws IOException { 
    final byte[] buffer = new byte[256]; 
    try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { 
     try (InputStream in = new FileInputStream(new File(filename))) { 
      int bytesRead; 
      while ((bytesRead = in.read(buffer)) > 0) 
       out.write(buffer, 0, bytesRead); 
     } 
     return out.toByteArray(); 
    } 
} 
+0

ありがとうございました。 – vahitdurmus

関連する問題