Изменение размера изображения без потери качества.

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#1
Всем привет!
Интересует алгоритм изменения размера изображения без потери качества.
В инете нашел
Для просмотра контента необходимо: Войти или зарегистрироваться
. Результат отличный, но к сожалению библиотека платная :(
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#7
Исходное изображение у меня 1620х1080, разрешение 300dpi. Нужное изображение - 1280х853 и во всех вариантах разрешение становится 96dpi. Куда уж тут поэтапно уменьшать изображение?
 

Kmet

Java Team
25.05.2006
1 036
8
#8
я, конечно, не специалист по графике, но dpi это вроде как характеристика отображающего устройства, а не изображения
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#10
Ну что, декомпилил я ImageResize4J и получил такое :)
523.png
Импортировать классы в проект никак... т.к. есть одинаково именованные :)
 

Kmet

Java Team
25.05.2006
1 036
8
#13
Ну что, декомпилил я ImageResize4J и получил такое :)
Посмотреть вложение 6775
Импортировать классы в проект никак... т.к. есть одинаково именованные :)
в общем и целом, java case sensitive для имен классов
проблемы только при разработке, если ОС или ФС case insensitive
поднять виртуалку, чтобы порефакторить имена вроде как не сложно
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#15
Вот вариант с поэтапным:
Для просмотра контента необходимо: Войти или зарегистрироваться


А вот тут есть всякие разные варианты, пробовали их?
Для просмотра контента необходимо: Войти или зарегистрироваться
Да, все это пробовал и результат не фонтан.
Поэтапные варианты не устраивают. Слишком трудозатратны. Обрабатывать необходимо тысячи фотографий.
Лучше ImageResize4J к сожалению пока не нашел.
Нашел одну DLL, результат идентичен ImageResize4J, но не все файлы читаются :(
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#16
Нашел решение.
Библиотека вроде как индусов. Алгоритм использует фильтр Ланцоша.
Они предлагают два метода:
Создание миниатюр
Java:
BufferedImage thumbnail = QualityThumbnail.getScaledImage(sourceImage,128,128);
и изменение размера
Java:
BufferedImage thumbnail = QualityScaler.getScaledImage(source,1280,853);
Результатом доволен.
Главное правильно выбрать метод в зависимости от нужного размера изображения.
 

Вложения