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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет!
Интересует алгоритм изменения размера изображения без потери качества.
В инете нашел . Результат отличный, но к сожалению библиотека платная :(
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
c ULTRA_QUALITY?!

можно еще попробовать
на крайний случай, взять декомпилятор и подсмотреть алгоритм imageresize4j
 

garrick

Lotus Team
26.10.2009
1 367
152
BIT
363
Посмотрел... спецы рекомендуют уменьшать размер изображения поэтапно, за несколько шагов, а не сразу. И да, imgscalr говорят самое то.
 

NickProstoNick

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

Kmet

Well-known member
25.05.2006
904
8
BIT
0
я, конечно, не специалист по графике, но dpi это вроде как характеристика отображающего устройства, а не изображения
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
это характеристика любого изображения
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ну что, декомпилил я ImageResize4J и получил такое :)
523.png
Импортировать классы в проект никак... т.к. есть одинаково именованные :)
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Ну что, декомпилил я ImageResize4J и получил такое :)
Посмотреть вложение 6775
Импортировать классы в проект никак... т.к. есть одинаково именованные :)

в общем и целом, java case sensitive для имен классов
проблемы только при разработке, если ОС или ФС case insensitive
поднять виртуалку, чтобы порефакторить имена вроде как не сложно
 
R

romych2004

Вот вариант с поэтапным:


А вот тут есть всякие разные варианты, пробовали их?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Вот вариант с поэтапным:


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

NickProstoNick

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

Вложения

  • jdeli.zip
    214,2 КБ · Просмотры: 241
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!