2017-05-10 3 views
1

Ich habe eine dynamische BufferedImage in Java, die ich erzeuge. Ich möchte die BufferedImage an das Web-Frontend senden können. Ich möchte, dass das Web-Frontend in der Lage ist, dieses Bild in einem festgelegten Intervall zu aktualisieren. Außerdem benötige ich Tastatur- und Mausrückrufe. Ich habe das HTML5-Canvas untersucht, aber es scheint, dass es nicht wirklich die Art von Sache unterstützt, die ich mache.Stream dynamisch BufferedImage zur Website

Grundsätzlich versucht man, ein Spiel zu erstellen, das serverseitig generiert wird, dann wird dem Client das BufferedImage des Spiels mit 5 fps oder ähnlichem gesendet.

+0

Können Sie es ausarbeiten? –

Antwort

0

Sie könnten die Klasse Base64.Encoder verwenden, um die BufferedImage auf der Serverseite mit Java zu codieren. Dies würde das Bild in ein base64 String konvertieren, das in ein img-Tag src am Frontend geschoben werden kann.

Sie müssten das Bild speichern vorübergehend in Datei, aber das die Arbeit machen sollte:

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"))); 

Dann base64Str Sie Client senden und drücken Sie sie in die src attr eines img-Tag.

+0

Wird dies in der Lage sein, das Bild zu aktualisieren? –

+0

@CharlesDuncan Solange Sie den aktualisierten String an den Client senden. Ich nehme an, Sie verwenden Angular am Frontend? – CraigR8806

+0

Ich benutze Vaadin für dieses Projekt im Moment. –