Самое современное сжатие изображений сегодня (не в браузере)? - PullRequest
2 голосов
/ 24 марта 2009

Я пишу приложение на Java для просмотра изображений, которые содержат много текста и графики, например снимок экрана веб-страницы, на самом деле это изображение статьи в журнале. Некоторые части текста, некоторые части графики.

Моя клиентская программа написана на Java, я могу использовать любой формат изображения, какой лучший формат сжатия изображений я могу получить в Java? Так я могу сжимать и распаковывать?

Было бы неплохо, если бы изображение стало четким при загрузке, но в этом нет необходимости, это уже не 1997 год (помните, что загрузка gif).

Ответы [ 6 ]

3 голосов
/ 24 марта 2009

DjVu (http://djvu.org/), вероятно, является одним из самых умных форматов для сжатия / хранения ориентированных на текст изображений. Он фактически сохраняет текст как текст и добавляет изображения для фона. Это означает, что вы можете частично обрабатывать свои документы как текст (полнотекстовый поиск, копирование / вставка текста, ...). Вероятно, часть просмотра хорошо поддерживается в Java.

Самая большая проблема - отсутствие хорошей бесплатной поддержки для кодирования документов. Доступны некоторые инструменты с открытым исходным кодом, но в прошлый раз, когда я проверял, ни один из них не был ни очень удобным, ни очень удобным для разработчиков. Есть очень хорошие коммерческие инструменты, но довольно дорогие.

3 голосов
/ 24 марта 2009

Вы не предоставили одну ключевую информацию: нужно ли сжатие без потерь или нормально с потерями? И если с потерями все в порядке, то какой допуск?

Вы можете уменьшить все изображение до одного бита информации, если вы подготовлены к формату сжатия с большими потерями. : -)

Если серьезно, два основных формата без потерь - это GIF и PNG (как в браузере, так и вне него), а самый большой (на сегодняшний день) формат с потерями - JPG. Другие форматы, такие как BMP и TIF, далеко не так эффективны.

все три из этих форматов хорошо поддерживаются в Java (напрямую или с помощью легко доступных сторонних библиотек). PNG имеет тенденцию иметь лучшие коэффициенты сжатия, чем GIF.

См:

2 голосов
/ 24 марта 2009

Для сжатия с потерями вы также можете рассмотреть Jpeg 2000 . Это намного эффективнее, чем стандартное сжатие JPEG, особенно при очень низких настройках качества, оно относительно широко распространено и уже существует множество библиотек кодирования / декодирования.

1 голос
/ 24 марта 2009

В дополнение к очкам Клетуса

Существуют такие инструменты, как pngout, pngcrush и optipng для сжатия изображений

0 голосов
/ 02 августа 2011

Сжатие изображений DLI является лучшим из доступных. Это не стандарт. Но по-прежнему очень весело играть.

https://sites.google.com/site/dlimagecomp/

Взгляните на 'http://www.jpegmini.com/main/home'. Перепрессуйте файл jpg одним из этих 'http://www.maximumcompression.com/data/jpg.php' Фильтр шума можно использовать для дальнейшего улучшения отношения сигнал / шум. «http://compression.ru/video/deblocking/index_en.html'

Это только для исследовательских целей, я не могу придумать, как вы можете реализовать это в Java.

0 голосов
/ 24 марта 2009

Я предпочитаю PNG для любой работы с изображениями в Интернете, поскольку GIF имеет ограниченную палитру, а JPG не поддерживает прозрачность.

...