Я просто пытался сжать изображение с форматом изображения PNG и имел переменные результаты различных приложений. Для ссылки изображение, которое я пытаюсь сжать, является снимком экрана этого сайта. Вот загрузка исходного изображения.
Вот некоторые результаты, в порядке которых я имею до сих пор лучше всего к худшему (исходное изображение составляет 239 КБ):
PNGGauntlet (Xtreme! / None filter) ...................... 141KB
FastStone Capture v5.3 (16M / MAX/ No filter) ............ 166KB
Paint.NET 3.36 (Autodetect) .............................. 185KB
PNGGauntlet (Xtreme! / Auto filter) ...................... 208KB
IrfanView (PNGOUT 2 passes w/default) .................... 211KB
XnView (Export / 9 / Sub filter) ......................... 228KB
Photoshop CS1 (Save for Web / PNG24) ..................... 232KB
IrfanView (Standard save / 9) ............................ 240KB
XnView (Standard save / 9) ............................... 240KB
IrfanView (Save for Web / Best) .......................... 242KB
FastStone Capture v5.3 (16M / MAX/ Paeth filter) ......... 248KB
IrfanView (Save for Web / Optimal 256 / Xiaolin / Best) .. 81KB
Некоторая игра с PNGGauntlet, ведомым к лучшему результату, хотя это взяло возрасты для сжатия. FastStone делает что-то интересное, как Paint.NET, потому что они получают свои результаты в части времени, которое PNGGauntlet занимает для проворота его волшебства. Я разделил те последние два результата для контраста (см., как фильтр Paeth, кажется, вызывает проблему). Отметьте также пакетированную версию с 256 цветами от Irfan: это обычно было бы опцией, которую я буду использовать, но я тестирую результаты TrueColor здесь.
Имеет кого-либо еще, получил любые предложения, которые могут разбить лучшие результаты здесь, и может любой объяснять, что делают фильтры, потому что они, кажется, серьезно влияют на результат в зависимости от типа изображения.
PngOptimizer 165 КБ приблизительно за 2 секунды.
Качество изображения является нетронутым.
Я только когда-либо использовал pngcrush, но он работает хорошо и имеет много опций.
PNGGauntlet является оберткой GUI для PNGOUT и если Вы смотрите на ту страницу существует плагин PNGOUT.DLL для Irfanview, если Вы предпочитаете, чтобы как интерфейс, или Вы могли использовать PNGOUT на командной строке или в сценариях, если Вы хотите автоматизировать свое сжатие как часть сборки/процесса развертывания.
Мне нравится OptiPNG. В дополнение к источнику и утилите командной строки там optipng плагины для Windows Explorer, Paint.NET, пары фронтэндов для пользователей Mac и некоторых других проектов (Муравей Apache, Eclipse; посмотрите раздел Related Projects по домашней странице).
может любой объяснять, что делают фильтры
Они изменяются, как сохраняются строки изображения. Вместо того, чтобы сохранить необработанные значения RGB (или индексы палитры), изображение может сохранить различия между соседними пикселями. Это могло бы сделать данные лучше удовлетворенными для сжатия, если у Вас есть изображение с градиентами.
Только для быстрого сравнительного теста, я загрузил 170 случайных PNGs с различных веб-сайтов в Интернете, всего приблизительно 8 МБ. Вот результаты:
Original: 8,403,619 bytes total
PNGCrush: 7,398,194 bytes total
Optipng: 7,340,167 bytes total
PNGOUT: 6,938,205 bytes total
Таким образом, кажется, что PNGOUT (или любой GUI на основе его) является лучшим выбором, если размер является Вашей основной целью. Это все преобразования без потерь.