返回1 * 1像素图像响应播放scala

时间:2015-08-08 05:43:33

标签: image scala playframework response

我需要在每个响应中返回1 * 1像素的相同虚拟图像。我使用bufferArray来执行此操作,我的代码snipet如下:

val image: BufferedImage = ImageIO.read(new File("public/images/dummy.png"));
val baos: ByteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);

Ok(baos.toByteArray).as("image/png")
经过一段时间服务器抛出错误后,java.io.excp打开了太多文件。 请帮忙,有没有其他方法可以做到这一点?

我已将该imagebuffer部分放入另一个对象(即对象abc {})并将其用作abc.baos。但错误是一样的。

2 个答案:

答案 0 :(得分:1)

你可以使用:

Ok.sendFile(new File("public/images/dummy.png"))

答案 1 :(得分:0)

您应该能够将该文件作为响应提供。 Play有文件的响应编写器,因此不需要ByteArrayBuffer。如果您这样做,Play也应该在服务后为您关闭文件。

另请查看我在主帖后面的缓存评论