本地图片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); // 省略创建输出流的步骤,直接将输入流转为字节数组