grails - Grails:将BufferedImage写入响应

标签 grails groovy bufferedimage

我有带大小调整方法的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/

相关文章:

java - 在Java中组合多个图像

grails - 数据从数据库中消失了吗?

Grails Spring Security 默认配置 : How to define default user and password

java - 将进程输出重定向到标准输出

file-io - 使用 Groovy 从 Jenkins 主节点访问从节点上的文件

java - 将 Java 代码转换为 Groovy

java - 在JavaScript中使用“<g:message标签

grails cxf BeanCreationException

java - 只绘制缓冲图像的一部分

java - TYPE_4BYTE_ABGR 到 TYPE_3BYTE_BGR 的转换