A vaadin UI component wraps a BufferedImage.
You can use it with or without interactivity.
Support some interactivity, handling MouseMove, Click and BoxSelect at server side. You can specify update interval for MouseMove event or disable it.
setWidth, setHeight, setSize are not supported. The widget will update its size based on the image you passed in setImage(img).
Tiny example code for just using it as a wrapper of BufferedImage without interactivity: InteractiveImage imgWidget = new InteractiveImage(); imgWidget.setImage(yourBufferedImage); //disable MouseMove. You don't need to do this, //but it does save some traffic by disabling it. imgWidget.setMouseMoveUpdateInterval(-1);
Try short sample code for interactivity:
Try the longer sample code for other features: updateInterval, highlightBox.
Sorry, I don't have a place to host a demo page. (Too bad, Google App Engine doesn't support BufferedImage).