Je développe un album Web en utilisant Grails et pour le traitement d'image, j'utilise grails-image-tools plugin. J'ai besoin d'une fonctionnalité pour redimensionner les images si la taille des images téléchargées est trop grande (par exemple: plus de 600 * 840). Dans ce cas, j'ai besoin de redimensionner cette image à 600 * 840). Quel est le moyen le plus efficace de le faire? Merci beaucoup.Redimensionner l'image dans Grails
12
A
Répondre
7
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)
}
1
Utilisez le plugin ImageTool. http://grails.org/ImageTools+plugin
+0
Une idée si elle est compatible avec Grails 2? Est-il nécessaire de me construire à partir de git ou est-ce que la dernière version 0.1 fonctionne aussi? –
12
Dans BuildConfig.groovy
ajouter une dépendance à imgscalr
dependencies {
compile 'org.imgscalr:imgscalr-lib:4.1'
}
redimensionnement des images devient alors un one-liner:
BufferedImage thumbnail = Scalr.resize(image, 150);
Questions connexes
- 1. Redimensionner listview dans WPF
- 2. image Redimensionner dans asp.net
- 3. MappedSuperclass Alternatives dans Grails
- 4. Erreur dans Grails
- 5. Postback Javascript dans Grails
- 6. Config.groovy dans Grails: environments.production.grails.serverURL
- 7. Groovlet dans Grails apps
- 8. redimensionner une fenêtre dans Xul
- 9. Redimensionner un contrôle dans WPF
- 10. Désactiver WindowedApplication Redimensionner dans Flex
- 11. Intégration de projet dans Grails
- 12. problème avec JSON dans Grails
- 13. variables de requête dans Grails
- 14. Dojo Fisheye dans l'application Grails
- 15. UIImageView redimensionner
- 16. extendedDataTable redimensionner
- 17. Downscale/redimensionner?
- 18. Syntaxe du filtre Grails, ou, Comment appeler un filtre Grails à l'extérieur Grails
- 19. Redimensionner une figure automatiquement dans matplotlib
- 20. Redimensionner des images dans le répertoire
- 21. comment redimensionner des colonnes dans datagridview?
- 22. Redimensionner dynamiquement une fenêtre dans Xaml
- 23. Redimensionner Combobox dans win32 (Largeur de changement)
- 24. Recherche de Google dans l'application de grails
- 25. téléchargement de fichiers à distance dans Grails
- 26. dates de mise en forme dans Grails
- 27. Comment utiliser l'événement onLoading dans grails remoteFunction
- 28. Afficher des images dans gsp (grails)
- 29. Gestionnaire d'exceptions catch-all dans Grails
- 30. Tri d'une liste référencée dans Grails
ce fait pivoter l'image bien .... – hvgotcodes
@hvgotcodes vieille question, mais la raison en est que l'image n'est pas réellement pivotée en premier lieu - elle a juste des données EXIF qui indiquent aux visionneuses de photos (comme les navigateurs) d'afficher l'image pivotée. Certaines caméras (et en particulier les téléphones) font cela au lieu de faire tourner l'image. Comme l'image n'est pas réellement pivotée et que les API Java ne regardent pas les données de rotation EXIF, l'image finit par tourner, même si en réalité ce n'est pas le cas. Voici [un exemple] (https://gist.github.com/9re/1990019) de code qui vérifie les données EXIF et tourne en conséquence. –