- 为什么要将bufferedImage 转为 byte[]
在网络传输中,图片是无法直接传输的,因此需要将其转为字节数组。
- BufferedImage -> byte[]
// 读取图片
BufferedImage image = ImageIO.read(new File("C:\\xx\\xx\\.jpg"));
// 创建输出流
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 写入流
ImageIO.write(image, "jpg", byteArrayOutputStream);
// 清流
byteArrayOutputStream.flush();
// 转为byte[]
byte[] byteArray = byteArrayOutputStream.toByteArray();
// 关流
byteArrayOutputStream.close();
- byte[] -> BufferedImage
// 读取图片到流,并读入byte[]
FileImageInputStream in = new FileImageInputStream(new File("C:\\xx\\xx.jpg"));
int byte_len = (int)in.length();
byte [] byteImg = new byte[byte_len];
in.read(byteImg);
// 创建输入流
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteImg);
// byte[] -> BufferedImage
BufferedImage image = ImageIO.read(byteArrayInputStream);
// 关流
byteArrayInputStream.close();