2010-03-10 4 views
0

로 BufferedImage를 쓰기 :Grails는 : 나는 크기 조정 방법 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()) 

답변