Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 返回1*1像素图像以响应播放scala_Image_Scala_Playframework_Response - Fatal编程技术网

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

Image 返回1*1像素图像以响应播放scala,image,scala,playframework,response,Image,Scala,Playframework,Response,我需要在每个响应中返回相同的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.toByteArr

我需要在每个响应中返回相同的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打开的文件过多。 请帮忙,还有别的方法吗


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

您应该能够将文件作为响应提供。Play具有文件的responsewriter,因此不需要ByteArrayBuffer。如果您这样做,Play还应在文件送达后为您关闭文件

另外,请在您的主要帖子下查看我对缓存的评论,您只需使用:

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

首先,您忘记关闭文件,因为此响应总是相同的,所以您可以将控制器方法与缓存一起使用:这将防止从磁盘反复读取映像