2009-12-10 14 views
0

J'ai un tas d'images sur un serveur. Lorsque le client demande une URL pour l'image, le client peut spécifier de recevoir l'image complète ou d'obtenir une miniature de l'image. Donc, je cherche à implémenter une solution de type servlet qui traite la requête, et génère une vignette à la demande si nécessaire. Il doit supporter jpg, gif, tif, png.Exemples de réussite de création d'images miniatures à la demande en utilisant java

Il semble que l'utilisation de BufferedImage, JAI et/ou ImageMagick sont les meilleures options pour Java (à partir de post). D'autres que j'ai peut-être manqués?

De même, quelqu'un a-t-il implémenté quelque chose de similaire en java? Si oui, toutes les suggestions sur une solution qui donne (1) des vignettes de bonne qualité de descente, (2) ne monopolisent pas une énorme quantité de mémoire lors du traitement des images, (3) un temps de réponse acceptable?

Répondre

1

La ligne de base de code pour une telle solution serait

img.getScaledInstance(w, h, Image.SCALE_DEFAULT); 

Où, si vous ne voulez pas la qualité, vous pouvez utiliser Image.SCALE_SMOOTH. Je l'ai utilisé (entouré de quelques extras, comme le remplacement d'une couleur avec un motif), sur un site pas très actif (~ 300 utilisateurs par jour), mais qui sert de nombreuses images, et cela n'a causé aucun problème, vous pouvez donc l'utiliser librement. Utilisez ImageIO.write(image, formatName, response.getOutputStream()) pour envoyer l'image dans la réponse.

1

Une autre solution est de faire appel à certains systèmes une ligne de commande utilitaire comme imagemagick non-java et la sortie de la liaison de fichier généré.

+1

qui est très hostile aux développeurs – Bozho