Я знаю, что этот вопрос довольно старый, но когда выходит новое программное обеспечение, оно помогает получить новые ссылки на проекты, которые могут быть интересны людям.
imgscalr - это библиотека для изменения размера изображения на чистом Java (и простые операции, такие как заполнение, обрезка, вращение, осветление / затемнение и т. д.), которая до боли проста в использовании - один класс состоит из набора простых графических операций, которые все определены как статические методы Вы передаете изображение и получаете результат.
Самый простой пример использования библиотеки будет выглядеть так:
BufferedImage thumbnail = Scalr.resize(image, 150);
А более типичное использование для создания миниатюр изображений с использованием нескольких качественных настроек и т. П. Может выглядеть следующим образом:
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);
}
Все операции по обработке изображений используют сырой конвейер Java2D (аппаратно ускоренный на основных платформах) и не создадут проблемы вызова через JNI, как конфликты библиотек в вашем коде.
imgscalr также был развернут в крупномасштабных производствах в нескольких местах - включение класса AsyncScalr делает его идеальным дополнением для любой обработки изображений на стороне сервера.
Существует множество настроек качества изображения, которые вы можете использовать для достижения компромисса между скоростью и качеством с максимальным режимом ULTRA_QUALITY, обеспечивающим масштабированный результат, который выглядит лучше, чем реализация GIMP Lancoz3.