2010-08-10 9 views
9

J'ai besoin d'une librairie de génération de vignettes suffisamment intelligente pour l'utiliser dans mon application Java. J'ai trouvé le code approprié here mais je ne suis pas sûr des problèmes de licence possibles.Y a-t-il une bibliothèque Java pour la génération des vignettes?

Y a-t-il des bibliothèques appropriées libres?

+1

Avez-vous contacté l'auteur pour voir s'il y avait des problèmes de licence? – Woody

Répondre

6

Si vous divisez la tâche « créer une vignette » en trois étapes, « image de charge », « l'image à l'échelle » et « enregistrer l'image », vous pouvez le faire avec l'API Java standard. Vous pouvez utiliser les méthodes de l'utilitaire statique dans javax.imageio.ImageIO pour charger et enregistrer des images et utiliser Image#getScaledInstance(...) pour redimensionner l'image d'origine. Depuis le Image vous obtenez de getScaledInstance n'est pas un BufferedImage, vous devez créer un nouveau BufferedImage avec la bonne taille et peindre l'image mise à l'échelle dans le nouveau BufferedImage avant de pouvoir utiliser ImageIO pour l'enregistrer.

0

Il existe jmagick, une implémentation Java de la célèbre infrastructure ImageMagick.

+1

Bonne idée, mais sous-optimale. Ajouter une dépendance externe et appeler des méthodes natives via un wrapper ABI n'est pas ce qu'un développeur Java appelle une bonne solution. – gyorgyabraham

+0

Ce n'est pas vraiment une implémentation Java, c'est une interface Java pour les bibliothèques ImageMagick natives. –

0

J'ai vérifié son site et il n'y a aucune mention de licence. Cela pourrait signifier des problèmes. Au moins en Italie où je vis parce que s'il n'y a pas d'autorisation explicite, vous ne pouvez pas utiliser des œuvres qui ne sont pas les vôtres.

Je suggère de lire cette question: Open source Java library to produce webpage thumbnails server-side

18

Essayez le miniature: http://code.google.com/p/thumbnailator/. Tout le code que vous devez ajouter est:

Thumbnails.of(new File("path/to/directory").listFiles()) 
    .size(640, 480) 
    .outputFormat("jpg") 
    .toFiles(Rename.PREFIX_DOT_THUMBNAIL); 

Il est aussi rapide: http://code.google.com/p/thumbnailator/wiki/Comparison.

Bonne chance

+0

adore ça! fonctionne comme un charme et super facile à utiliser. branché sur mon site web en quelques minutes et je suis très heureux avec ce –

+0

Pour une intégration facile avec les outils de construction populaires, voir: [http://mvnrepository.com/artifact/net.coobird/thumbnailator](http://mvnrepository.com/artifact/ net.coobird/thumbnailator) – icl7126

1

pour créer des vignettes à l'aide de la méthodologie de l'API, Scalr.resize ("vos arguments") serait le meilleur. Thumbanilator est également une option où vous n'avez pas à perdre beaucoup de temps à comprendre, il suffit d'appeler la méthode respective et profiter de votre vignette de sortie. Performance/Qualité sage Scalr est le meilleur. thumbnailator de qualité sage est ok.