如何从 BufferedImage 获取输入流?
如何从 BufferedImage 对象获取 InputStream? 我尝试了这个,但 ImageIO.createImageInputStream() 总是返回 NULL
BufferedImage bigImage = GraphicsUtilities.createThumbnail(ImageIO.read(file), 300);
ImageInputStream bigInputStream = ImageIO.createImageInputStream(bigImage);
图像缩略图正在正确生成,因为我可以成功地将 bigImage 绘制到 JPanel 上。
How can I get an InputStream from a BufferedImage object? I tried this but ImageIO.createImageInputStream() always returns NULL
BufferedImage bigImage = GraphicsUtilities.createThumbnail(ImageIO.read(file), 300);
ImageInputStream bigInputStream = ImageIO.createImageInputStream(bigImage);
The image thumbnail is being correctly generated since I can paint bigImage to a JPanel with success.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(3)
山川志2024-07-22 12:39:46
通过重写方法 toByteArray()
,返回 buf
本身(而不是复制),您可以避免与内存相关的问题。 这将共享相同的数组,而不是创建另一个正确大小的数组。 重要的是使用 size()
方法来控制数组中有效字节的数量。
final ByteArrayOutputStream output = new ByteArrayOutputStream() {
@Override
public synchronized byte[] toByteArray() {
return this.buf;
}
};
ImageIO.write(image, "png", output);
return new ByteArrayInputStream(output.toByteArray(), 0, output.size());
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
来自 http://usna86-techbits.blogspot.com/ 2010/01/inputstream-from-url-bufferedimage.html
它工作得很好!
From http://usna86-techbits.blogspot.com/2010/01/inputstream-from-url-bufferedimage.html
It works very fine!