Sé que esta pregunta es bastante antigua, pero a medida que sale un nuevo software, ayuda a obtener algunos enlaces nuevos a proyectos que podrían ser interesantes para la gente.
imgscalr es una biblioteca de redimensionamiento de imágenes de Java puro (y operaciones simples como relleno, recorte, rotación, brillo / atenuación, etc.) que es dolorosamente simple de usar: una sola clase consiste en un conjunto de operaciones gráficas simples, todas definidas como métodos estáticos que pasas una imagen y obtienes un resultado.
El ejemplo más básico de uso de la biblioteca se vería así:
BufferedImage thumbnail = Scalr.resize(image, 150);
Y un uso más típico para generar miniaturas de imágenes usando algunos ajustes de calidad y similares podría ser así:
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 las operaciones de procesamiento de imágenes usan la canalización Java2D sin procesar (que es acelerada por hardware en las plataformas principales) y no introducirán el dolor de llamar a través de JNI como la contención de la biblioteca en su código.
imgscalr también se ha implementado en producciones a gran escala en bastantes lugares: la inclusión de la clase AsyncScalr lo convierte en un complemento perfecto para cualquier procesamiento de imágenes del lado del servidor.
Existen numerosos ajustes en la calidad de imagen que puede utilizar para intercambiar velocidad y calidad con el modo ULTRA_QUALITY más alto que proporciona un resultado escalado que se ve mejor que la implementación Lancoz3 de GIMP.