我有带大小调整方法的ImageController:
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())
最佳答案
是的,ImageIO是必经之路
看到
Image resize in Grails
关于grails - Grails:将BufferedImage写入响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2417968/