Java: алгоритм сжатия изображений с потерями

Мое веб-приложение позволяет пользователю загружать свое изображение для просмотра, и я хочу сжать изображение перед его отображением. Какие есть хорошие алгоритмы сжатия изображений с потерями. Я изучаю и эта страница здесь http://www.imageoptimizer.net/Pages/Home.aspx, делает это отлично. Мое изображение было 670 КБ, а после сжатия стало всего 150 КБ, а качество почти такое же.


person Thang Pham    schedule 02.03.2011    source источник
comment
JPEG действительно включал в себя некоторые очень серьезные математические умы, чтобы заставить его работать, вы ничего не говорите о потере или не качестве. JPEG действительно имеет много свойств для настройки. imageoptimizer — хорошо известный костюм с немалой оптимизацией, однако они по-прежнему возвращают jpeg.   -  person bestsss    schedule 02.03.2011
comment
@bestsss: извините за расплывчатость. Я пытаюсь добиться того, чтобы сжатие не слишком сильно ухудшало изображение и уменьшало его размер. Думаю, я попытаюсь последовать совету @Uriah и попробовать javax.io. Спасибо   -  person Thang Pham    schedule 03.03.2011
comment
@bestsss Это хороший момент, есть способы уменьшить размер файла изображения, удалив данные, которые вас не интересуют. Для большинства обычных изображений JPEG с цифровой камеры у вас может быть 10- 30K в данных EXIF. Образы Pro могут содержать профили ICC, размер которых может достигать нескольких сотен Кб. Данные XMP, добавленные Photoshop, также могут быть тяжеловесными.   -  person Uriah Carpenter    schedule 03.03.2011


Ответы (1)


JPEG – это фактический алгоритм сжатия фотографических изображений.

Для изображений штрихового типа обычно используется формат PNG или GIF.

person Uriah Carpenter    schedule 02.03.2011
comment
Пожалуйста, извините, если то, что я собираюсь сказать, звучит глупо, но веб-сайт, который я показал выше, на самом деле уменьшает размер изображения JPEG с 670 КБ до 150 КБ. Есть ли такой алгоритм с открытым исходным кодом? - person Thang Pham; 02.03.2011
comment
В фильтрах JPEG есть понятие «качество» — вы можете настроить специальную ручку, чтобы получить наилучшее соотношение качества и размера для вашего приложения. Вы можете взять существующее изображение JPEG (технически контейнер JFIF) и снова применить сжатие JPEG. В Java доступно множество реализаций JPEG — некоторые лучше других. Большинство людей считают, что javax.imageio достаточно. Идя (намного) дальше, вы можете изучить методы фрактального сжатия. - person Uriah Carpenter; 02.03.2011
comment
Спасибо. Я изучаю javax.imageio сейчас. Надеюсь, это то, что я хочу. +1 - person Thang Pham; 03.03.2011
comment
Имиджевая работа. У меня работает правильно. Спасибо. У вас есть ответ javax.imageio в качестве одного из ваших комментариев, не могли бы вы изменить свой оригинал, чтобы там также было имя javax.imageio. Спасибо. - person Thang Pham; 08.03.2011