визуализировать изображение из TagLib - PullRequest
3 голосов
/ 23 декабря 2011

В контроллере Grails я могу отобразить изображение в ответ, используя

class MyController {

  def getImage = {
    BufferedImage image = ImageIO.read('http://example.org/foo.png')
    ImageIO.write(captcha, "PNG", response.outputStream)
  }
}

В GSP я могу отобразить это изображение, используя:

<img src="${createLink(controller: 'my', action: 'getImage')}"/>

Я хотел бы написатьTagLib, который делает что-то подобное.

class MyTagLib {
  static namespace = "my"

  def getImage(attrs ->
    BufferedImage image = ImageIO.read('http://example.org/foo.png')            
  }    
}

Но я не могу понять, как отобразить это изображение в ответ.Внутри класса тега я могу писать только в out, который является экземпляром GrailsPrintWriter, но ImageIO.write может записывать только в OutputStream.

. Для завершения, тег вышебудет вызван из GSP с помощью

<my:getImage/>

1 Ответ

2 голосов
/ 23 декабря 2011

Вы можете сделать экземпляр писателя из GrailsPrintWriter, выполнив new WriterOutputStream(out). Попробуйте это:

BufferedImage image = ImageIO.read(new URL('http://www.google.de/images/srpr/logo3w.png'))
ImageIO.write(image, "png", new WriterOutputStream(out))

(проверено в граалях 2.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...