javaを使用してソケットで複数のイメージを送信しようとしていますが、イメージをバイト配列に変換して送信できます。次のコードを試しましたが、C:\ドライブに約10,000枚の画像を書きました。ディスクに書き込まずにこの変換を行う方法はありますか?ありがとう!Java-バッファリングされたイメージをディスクに書き込まずにbyte []に変換する
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//ImageIO.setUseCache(false);
ImageIO.write(bi.getImage(), "jpg", outputStream);
byte[] imageBytes = outputStream.toByteArray();
ノート(低品質)JPEGは、ネットワークの多くの時間を節約することができます。実際に送信されたバイトサイズを考慮する必要があると思います。これは純粋な 'BufferedImage'でかなり大きくなります。ところで、これらの画像のソースは何ですか?たとえば、スクリーンショットの場合、PNGはデフォルトの圧縮JPEGよりも小さいバイトサイズを提供できます。それが連続的なスクリーンショットであった場合、おそらくはビデオストリームであっても。 –
ソースは、私が本質的にストリームにする連続的なスクリーンショットです。しかし、はい、ディスクに書き込まずに画像を圧縮する方法を理解する必要があります。それが私の究極の目標です。 – tier1