本地圖片File轉InputStream:
File file = new File(filePath);
FileInputStream inputStream = new FileInputStream(file);
網絡圖片轉InputStream:
InputStream inputStream = getInputStream(path);
BufferedImage轉FileOutputStream:
BufferedImage image = ImageIO.read(filePath1); // 從本地讀取一張圖片
對圖片進行處理。。。
FileOutputStream out = new FileOutputStream(filePath2); // 將處理后的圖片保存到本地
ImageIO.write(image, "jpg", out);
out.close();
BufferedImage轉ByteArrayOutputStream:
BufferedImage bufferedImage = Thumbnails.of(HttpUtils.getInputStream(filePath)).scale(0.1f).outputQuality(1f).asBufferedImage();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", outputStream);
InputStream轉OutputStream:
ByteArrayOutputStream os = cloneInputStream(inputStream);
流轉字節數組:
byte[] fileByteArray = os.toByteArray();
---------------------------------------------------------------------------------------------------------------------
2021-06-18更新:
Hutool中的IoUitl封裝了很多API,方便我們直接調用:
ByteArrayInputStream in = IoUtil.toUtf8Stream(HttpUtil.get(imageUrl)); // 網絡圖片轉輸入流
ByteArrayOutputStream out = new ByteArrayOutputStream(); // 聲明一個輸出流
IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE); // 將輸入流拷貝到輸出流中
out.toByteArray(); // 輸出流轉字節數組
IoUtil.readBytes(in); // 省略創建輸出流的步驟,直接將輸入流轉為字節數組