return 响应播放 scala 中的 1*1 像素图像

return 1*1 pixel image in response play scala

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

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打开的文件太多。 请帮忙,还有其他方法吗?

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

您应该可以只将文件作为响应提供。 Play 有一个文件响应编写器,因此不需要 ByteArrayBuffer。如果您这样做,Play 也应该在文件提供后为您关闭它。

另请查看我关于在您的主 post

下缓存的评论

您可以只使用:

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