Java 将动态缓冲区映像流到网站

Java 将动态缓冲区映像流到网站,java,html,web-services,html5-canvas,Java,Html,Web Services,Html5 Canvas,我正在生成一个java动态BuffereImage。我希望能够将BuffereImage发送到web前端。我希望web前端能够以设定的时间间隔刷新此图像。此外,我还需要键盘和鼠标回调。我在研究HTML5画布,但它似乎并不真正支持我正在做的事情 基本上,尝试制作一个服务器端生成的游戏,然后客户端会以5fps或其他速度发送该游戏的BuffereImage。您可以使用Base64.Encoder类在服务器端用Java对BuffereImage进行编码。这会将图像转换为base64字符串,该字符串可以插

我正在生成一个java动态BuffereImage。我希望能够将BuffereImage发送到web前端。我希望web前端能够以设定的时间间隔刷新此图像。此外,我还需要键盘和鼠标回调。我在研究HTML5画布,但它似乎并不真正支持我正在做的事情


基本上,尝试制作一个服务器端生成的游戏,然后客户端会以5fps或其他速度发送该游戏的BuffereImage。

您可以使用
Base64.Encoder
类在服务器端用Java对
BuffereImage
进行编码。这会将图像转换为base64
字符串
,该字符串可以插入前端的
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
attr中。

您可以使用
Base64.Encoder
类在服务器端用Java对
缓冲图像进行编码。这会将图像转换为base64
字符串
,该字符串可以插入前端的
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
attr中。

您可以详细说明吗?您可以详细说明吗?这能刷新图像吗?@CharlesDuncan,只要您继续向客户端发送更新的
字符串。我假设你在前端使用Angular?我现在在这个项目中使用Vaadin。我不熟悉这个框架,但是如果它有html插值,那么应该就可以了。你有办法在JS中用变量设置标签的属性吗?是的,我应该能做到。此方法是否能够进行鼠标/键盘回调?这是否能够刷新图像?@CharlesDuncan,只要您继续向客户端发送更新的
字符串
。我假设你在前端使用Angular?我现在在这个项目中使用Vaadin。我不熟悉这个框架,但是如果它有html插值,那么应该就可以了。你有办法在JS中用变量设置标签的属性吗?是的,我应该能做到。此方法是否能够进行鼠标/键盘回调?