1
Javaのバイト配列をJPEGから変換したい。コードの下で私の要求が間違っています。Javaのjpegからバイトに変換
私が実行すると、間違ったバイト番号が与えられます。 JPEGのサイズは845.941バイトです。しかし、jpegbytes
にサイズ2 359 296バイトを返します。どのようにして正しいバイト値にすることができますか?私は、BufferedImage
クラスが間違っていると思う。
Javaのバイト配列をJPEGから変換したい。コードの下で私の要求が間違っています。Javaのjpegからバイトに変換
私が実行すると、間違ったバイト番号が与えられます。 JPEGのサイズは845.941バイトです。しかし、jpegbytes
にサイズ2 359 296バイトを返します。どのようにして正しいバイト値にすることができますか?私は、BufferedImage
クラスが間違っていると思う。
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();
}
}
ありがとうございました。 – vahitdurmus
jpegは圧縮データです。 jpegが「正しいサイズ」であると思うなら、ファイルサイズを取得し、イメージを 'BufferedImage'に読み込まないでください。 – fabian
どのような 'Image'クラスを使用していますか? [JDK](https://docs.oracle.com/javase/8/docs/api/java/awt/Image.html)に 'read'メソッドがありません – 4castle
@ 4castleクラスは' javax .imageio.ImageIO'、私はOPがタイプミスを起こしたと思う。 – Sam