So che questa domanda è piuttosto vecchia, ma quando esce un nuovo software aiuta a ottenere alcuni nuovi collegamenti a progetti che potrebbero essere interessanti per la gente.
imgscalr è una libreria di ridimensionamento di immagini in puro Java (e operazioni semplici come riempimento, ritaglio, rotazione, schiarimento / attenuazione, ecc.) che è dolorosamente semplice da usare - una singola classe è costituita da un insieme di semplici operazioni grafiche tutte definite come metodi statici che si passa un'immagine e si ottiene un risultato.
L'esempio più basilare di utilizzo della libreria sarebbe simile al seguente:
BufferedImage thumbnail = Scalr.resize(image, 150);
E un uso più tipico per generare miniature di immagini usando alcune modifiche di qualità e simili potrebbe apparire così:
import static org.imgscalr.Scalr.*;
public static BufferedImage createThumbnail(BufferedImage img) {
// Create quickly, then smooth and brighten it.
img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);
// Let's add a little border before we return result.
return pad(img, 4);
}
Tutte le operazioni di elaborazione delle immagini utilizzano la pipeline Java2D non elaborata (che è accelerata dall'hardware sulle principali piattaforme) e non introdurranno il dolore di richiamare tramite il conflitto della libreria JNI come nel codice.
imgscalr è stato anche distribuito in produzioni su larga scala in parecchi posti - l'inclusione della classe AsyncScalr lo rende un perfetto drop-in per qualsiasi elaborazione di immagini sul lato server.
Esistono numerose modifiche alla qualità dell'immagine che è possibile utilizzare per bilanciare tra velocità e qualità con la massima modalità ULTRA_QUALITY che fornisce un risultato in scala che sembra migliore dell'implementazione Lancoz3 di GIMP.