2012-01-21 11 views
11

Ho cercato e trovato alcune librerie di ridimensionamento di immagini per Java. Ma non sono sicuro con quale andare. Devo generare miniature dall'immagine caricata dal server.Libreria di ridimensionamento immagini migliore

Sarebbe bello se sapessi qual è il buono e il cattivo.

La lista che ho è:

  • JMagick
  • im4java
  • Thumbnailator
  • java-image-ridimensionamento
  • JAI

risposta

4

Nei miei progetti privati, io don Usiamo una libreria specifica, la funzionalità fornita per Java è accettabile risultati per me. Se si desidera solo eseguire il ridimensionamento delle immagini, una libreria completa di elaborazione delle immagini sarebbe troppo pesante.

Uso i frammenti di codice indicati in http://www.mkyong.com/java/how-to-resize-an-image-in-java/ che funziona abbastanza bene.

5

L'API Java per generare le anteprime non è sufficiente se sono necessarie miniature di alta qualità.

Per generare miniature di alta qualità utilizzare un framework come quelli che sono elencati. Ho provato ImgScalr (https://github.com/thebuzzmedia/imgscalr) e Thumbnailator. Con i miei test microbenchmark (non può essere davvero utilizzato per conclusioni generiche) Thumbnailator è più veloce, anche se non di molto, e più facile - specialmente quando si generano miniature con trasparenza.

Ho anche provato JMagick ma ho riscontrato problemi nella compilazione del codice e nell'impostazione. Anche un po 'preoccupato per incorrere in problemi più tardi con un quadro il cui codice di base è scritto in una lingua che non capisco affatto - C.

Si potrebbe anche trovare utile la discussione qui: How can I resize an image using Java?

5

Per il mio semplici esigenze, Thumbnailator era perfetto. Piccola lib; API fluente, pulita e ben documentata.

Nel mio caso, era solo "net.coobird" % "thumbnailator" % "0.4.8" dipendenza e:

//.. 
Thumbnails.of(originalFile) 
     .size(300, 300) 
     .toFile(thumbnailFile) 
//.. 

e fatto. Fondamentalmente si tratta di un involucro intuitivo in cima alle API Java 2D. Utile per esigenze specifiche (thumbnailin '); nessuna curva di apprendimento.


meno che non si ha realmente bisogno di fare un po 'pesante di sollevamento con le immagini, sarei diffidare di base su un binario esterno (ImageMagick e wrapper come JMagick), che aggiungerebbe complessità e le parti in movimento nel setup. Soprattutto se il tuo stack è simile al mio: app Scala/Java in esecuzione su Heroku. Ci sono cose come heroku-buildpack-imagemagick-cedar-14, sì, ma una semplice dipendenza in bundle con l'app è infinitamente più pulita.

Problemi correlati