Grails:将BufferedImage写入响应

时间:2010-03-10 15:12:23

标签: grails groovy bufferedimage

我有ImageController和resize方法:

def resize = {
    def pht = Photos.findByTypeAndPhotourl(params.type, params.photourl)
    if (pht != null) {
      BufferedImage source = ImageIO.read(new File(pht.photo))
      ImageResizer imageResizer = new ImageResizer()
      BufferedImage result = imageResizer.resize(source, Integer.parseInt(params.width), Integer.parseInt(params.height))
      imageResizer.writePNG(result, params.name)

      render "OK"
    } else {
      render "Error"
    }
  }

如您所见 - 它在磁盘上写入BufferedImage实例(已调整大小的图像)。但我希望返回图像作为响应,因此当用户请求调整大小方法(或者他将能够下载)时,调整大小的图像将显示在浏览器中。它像文件服务问题一样......

使用方式是否合适:

ImageIO.write(result, "png", response.getOutputStream())

1 个答案:

答案 0 :(得分:1)

是的,ImageIO是要走的路

Image resize in Grails