2010-03-10 44 views
0

我ImageController並調整其大小的方法:的Grails:寫的BufferedImage爲響應

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()) 

回答