views:

234

answers:

1

Hi.

I have ImageController with resize method:

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"
    }
  }

As you can see - it writes BufferedImage instance (resized image) on the disk. But i want to return image in response so resized image will be displayed in browser when user requests resize method(or he will be able to download it). It's smth like file serving problem...

Does it right way to use:

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

Yeah, ImageIO is the way to go

See

http://stackoverflow.com/questions/362360/image-resize-in-grails

tim_yates