tie*_*er1 23 java byte bufferedimage
我正在尝试使用java在套接字上发送多个图像,但我需要一种更快的方法将图像转换为字节数组,以便我可以发送它们.我尝试了以下代码,但它向我的C:\驱动器写了大约10,000张图像.有没有办法在不写入磁盘的情况下进行此转换?谢谢!
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//ImageIO.setUseCache(false);
ImageIO.write(bi.getImage(), "jpg", outputStream);
byte[] imageBytes = outputStream.toByteArray();
Run Code Online (Sandbox Code Playgroud)
sta*_*ker 46
这应该工作:
byte[] imageBytes = ((DataBufferByte) bufferedImage.getData().getDataBuffer()).getData();
Run Code Online (Sandbox Code Playgroud)
下面的代码真的很快(几毫秒)
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public byte[] toByteArray(BufferedImage image) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(baos);
encoder.encode(image);
return baos.toByteArray();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37366 次 |
| 最近记录: |