實際實作圖片的包括 BufferedImage 和 VolatileImage。
一般要把圖片讀取到記憶體中,或者是要把記憶體中的圖片寫入到檔案,都可以透過 ImageIO 來進行。
以下是讀取圖片,並且將圖片轉成 byte 陣列的方法(參考 [1-2]):
File originalImgFile = new File("D:\\0.jpg"); BufferedImage bufferedImage = ImageIO.read(originalImgFile); // convert BufferedImage to byte array ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, "jpg", baos); baos.flush(); byte[] originalImgByte = baos.toByteArray(); baos.close();
將圖片寫入成檔案時的方法(參考 [2],其實就是把 byte 陣列寫成檔案而已 XD):
// Get the byte array of the image. byte[] resizedBytes = baos.toByteArray(); // Construct the file. File resizedImgFile = new File("resize_small.jpg"); // Write the image bytes to file. FileOutputStream fos = new FileOutputStream(resizedImgFile); fos.write(resizedBytes); fos.close();
參考資料:
1、[Java] 取得Image的byte[]
2、How To Convert Byte[] To BufferedImage In Java
沒有留言:
張貼留言