2013-03-18 4 views
3

У меня есть изображение профиля, которое я сохранил в базе данных в поле byte [].Изменить размер загруженных изображений для лучшего просмотра

Что я хочу сделать, так это создать эскизы изображений во время выполнения. Потому что я должен показывать изображения разных размеров в разных местах на веб-странице. Что-то вроде facebook, которые показывают изображение в разделе комментариев и в других областях.

Любой плагин grails, который я могу использовать, у меня есть google imageTool, плагин imageMagick grails. Любой может рекомендовать плагин для любого другого подхода.

Спасибо.

ответ

1

Да, есть плагин grails, который вы можете использовать.

Смотрите эту ImageTools plugin

После установки плагина вы можете использовать следующее заявление для создания миниатюры нужного размера

Или, если его тонкого приложения, и вы не хотите внешние зависимости .. вы можете использовать следующий код Source

import java.awt.Image as AWTImage 
import java.awt.image.BufferedImage 
import javax.swing.ImageIcon 
import javax.imageio.ImageIO as IIO 
import java.awt.Graphics2D 

    static resize = { bytes, out, maxW, maxH -> 
     AWTImage ai = new ImageIcon(bytes).image 
     int width = ai.getWidth(null) 
     int height = ai.getHeight(null) 

     def limits = 300..2000 
     assert limits.contains(width) && limits.contains(height) : 'Picture is either too small or too big!' 

     float aspectRatio = width/height 
     float requiredAspectRatio = maxW/maxH 

     int dstW = 0 
     int dstH = 0 
     if(requiredAspectRatio < aspectRatio){ 
     dstW = maxW 
     dstH = Math.round( maxW/aspectRatio) 
     }else{ 
     dstH = maxH 
     dstW = Math.round(maxH * aspectRatio) 
     } 

     BufferedImage bi = new BufferedImage(dstW, dstH, BufferedImage.TYPE_INT_RGB) 
     Graphics2D g2d = bi.createGraphics() 
     g2d.drawImage(ai, 0, 0, dstW, dstH, null, null) 

     IIO.write(bi, 'JPEG', out) 

    } 
+0

Как насчет imageMagick, вы рекомендуете этот плагин? –

+0

@UmairSaleem: Никогда не используется imageMagick. Поэтому комментариев нет. –

Смежные вопросы