byte[]
Javaでラスター画像から取得するにはどうすればよいですか?私が試してみました:
byte[] data = ((DataBufferByte)bufferedImage.getData().getDataBuffer()).getData();
ClassCastException
ただし、これにより実行時例外がスローされます: 「DataBufferIntをDataBufferByteにキャストできません」。
助けてくれてありがとう。
byte[]
Javaでラスター画像から取得するにはどうすればよいですか?私が試してみました:
byte[] data = ((DataBufferByte)bufferedImage.getData().getDataBuffer()).getData();
ClassCastException
ただし、これにより実行時例外がスローされます: 「DataBufferIntをDataBufferByteにキャストできません」。
助けてくれてありがとう。
次のような ByteArrayOutputStream を使用してバイト配列を取得できます: (注、テストされていないコード)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( bufferedImage, "jpg", baos ); // if your image is a jpg
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();
編集 これはどうですか?画像を読み取って ByteArrayOutputStream に書き込むには、画像の FileInputstream が必要です。
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
}
} catch (IOException ex) {
//
}
byte[] bytes = bos.toByteArray();