我在java中有一个动态的BufferedImage,我正在生成。我希望能够将缓冲图像发送到 Web 前端。我希望 Web 前端能够以设定的时间间隔处理刷新此图像。另外,我将需要键盘和鼠标回调。我正在研究HTML5画布,但它似乎并不真正支持我正在做的事情。
基本上,尝试制作一个在服务器端生成的游戏,然后客户端以 5fps 或其他速度发送该游戏的 BufferedImage。
您可以使用Base64.Encoder
类通过Java对服务器端的BufferedImage
进行编码。 这会将图像转换为 base64String
,可以将其推入前端img
标签的src
中。
您需要暂时将图像保存到文件中,但这应该可以完成这项工作:
Base64.Encoder encoder = Base64.getEncoder();
BufferedImage bi = generateYourImage();
ImageIO.write(bi, yourImageExtension, new File(".tmp."+yourImageExtension));
String base64Str = "data:image/"+yourImageExtension+";base64,"+ encoder.encode(Files.readAllBytes(Paths.get(".tmp."+yourImageExtension")));
然后将base64Str
发送给您的客户,并将其推送到img
标签的src
中。