vendredi 15 avril 2011

Grails thumbnail : Reduire une image dans grails en gardant une bonne qualité

En java ce n'est pas forcement facile de trouver une librairie pour réduire des images en gardant une bonne qualité.

Heureusement il existe le projet Java Image Scaling qui a sa librairie sur maven.
http://code.google.com/p/java-image-scaling/


Maintenant voici comment intégrer Java Image Scaling dans grails : un jeu d'enfant :)

Ajouter la dépendance suivante dans grails-app/conf/BuildConfig.groovy


runtime 'com.mortennobel:java-image-scaling:0.8.5'


Dans votre controller ajoutez le bout de code suivant :


/**
* Return the content of screen shot
*/
def viewScreen = {
File img = new File("myImage.png")
response.contentType = 'image/png'
if(params.thumbnail){
BufferedImage inputImage = ImageIO.read(img);
BufferedImage rescaledImage = new MultiStepRescaleOp(DimensionConstrain.createMaxDimension(355,500)).filter(inputImage, null);
def outputStream = new ByteArrayOutputStream()
ImageIO.write(rescaledImage, "png", outputStream);
response.outputStream << outputStream.toByteArray()
}else{
response.outputStream << img.bytes
}
}

Aucun commentaire:

Enregistrer un commentaire