我試圖通過使用java的套接字發送多個圖像,但我需要更快的方式將圖像轉換爲字節數組,以便我可以發送它們。我嘗試了下面的代碼,但它向我的C:\驅動器寫了大約10,000個圖像。有沒有辦法在不寫入磁盤的情況下進行這種轉換?謝謝!Java-將bufferedimage轉換爲byte []而不寫入磁盤
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//ImageIO.setUseCache(false);
ImageIO.write(bi.getImage(), "jpg", outputStream);
byte[] imageBytes = outputStream.toByteArray();
注意一點額外的時間做使用更高的壓縮圖像壓縮(低質量)JPEG可以節省大量的網絡時間。我認爲你需要考慮實際發送的字節大小,在純粹的'BufferedImage'中會更大。順便說一句 - 這些圖像的來源是什麼?如果是例如截圖,通常PNG可以提供比默認壓縮JPEG更小的字節大小。如果它是連續的截圖,甚至可能是一個視頻流。 – 2012-04-20 13:47:36
來源是我基本上製作成流的連續截圖。但是,是的,我需要弄清楚如何壓縮圖像而不寫入磁盤。這是我的終極目標 – tier1 2012-04-20 15:08:11