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"))
我需要在每个响应中 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"))