Sei que essa pergunta é bastante antiga, mas à medida que o novo software é lançado, ajuda a obter novos links para projetos que podem ser interessantes para as pessoas.
O imgscalr é o redimensionamento de imagem em Java puro (e operações simples, como preenchimento, corte, rotação, clareamento / escurecimento etc.), que é extremamente simples de usar - uma única classe consiste em um conjunto de operações gráficas simples, todas definidas como métodos estáticos que você passa uma imagem e obtém um resultado.
O exemplo mais básico de uso da biblioteca seria assim:
BufferedImage thumbnail = Scalr.resize(image, 150);
E um uso mais típico para gerar miniaturas de imagens usando alguns ajustes de qualidade e similares pode ser assim:
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);
}
Todas as operações de processamento de imagem usam o pipeline Java2D bruto (que é acelerado por hardware nas principais plataformas) e não apresentará a dor de chamar via JNI como contenção de biblioteca em seu código.
O imgscalr também foi implantado em produções em larga escala em muitos lugares - a inclusão da classe AsyncScalr o torna um componente perfeito para qualquer processamento de imagem no servidor.
Existem vários ajustes na qualidade da imagem que você pode usar para trocar entre velocidade e qualidade com o modo ULTRA_QUALITY mais alto, fornecendo um resultado em escala que parece melhor do que a implementação Lancoz3 do GIMP.