Я нашел пример в исходном коде для Images.Captcha
, который привел к этому решению:
public static void map(String building_code, String ts_code) throws IOException {
BufferedImage image = ImageIO.read(new File("public/images/maps/" + building_code + "_" + ts_code.charAt(0) + ".png"));
... // add annotations
ImageInputStream is = ImageIO.createImageInputStream(image);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
Response.current().contentType = "image/png";
renderBinary(bais);
}
, на который ссылается использование <img id="map" src="@{Application.map(ts.building.code, ts.code)}" width="100%">
в шаблоне представления.
По какой-то причине это работает даже без указания типа контента, но я не уверен, как. Код в Images.Captcha
имел его, поэтому я его сохранил, по крайней мере, пока не выясню, почему он работает без него.