Задать вопрос

PNGWolf. Помощь в изменении проекта

Добрый день!
Я являюсь одним из разработчиков проекта Image Catalyst.
Сейчас идет работа над новой версии проекта, и мы планируем использовать программу pngwolf — программа для сжатия PNG. Данная программа имеет очень высокую степень сжатия, но в нем есть один недостаток.

pngwolf использует для сжатия библиотеку zlib и в ней есть такие параметры как:
--zlib-level= --zlib-memlevel= --zlib-strategy= --zlib-window=
При этом данные параметры могут принимать разные значения
--zlib-level= от 0 до 9
--zlib-memlevel= от 1 до 9
--zlib-strategy= от 0 до 3
--zlib-window= от 8 до 15

Такое программы как OptiPNG и TruePNG, использующие zlib позволяют перебрать значения параметров. Перебор данных значений позволяет существенно улучшить степень сжатия.

Сейчас pngwolf не перебирает значения параметров, т.е. пользователь указывает значение параметров:
--zlib-level=9 --zlib-memlevel=9 --zlib-strategy=0 --zlib-window=15

Если сделать, так что pngwolf будет перебирать значения, то это существенное улучшит степень сжатия
--zlib-level=9 --zlib-memlevel=1-9 --zlib-strategy=0-3 --zlib-window=15

Прошу помочь сделать необходимые изменения в pngwolf, чтобы программа могла перебрать вышеприведенные параметры.

И есть еще одна возможность улучшить степень сжатия, сейчас для конечного сжатия pngwolf использует 7-zip, недавно google выпустила проект zopfli — сжатие deflate существенно выше чем 7-zip. Можно ли поменять библиотеку 7-zip на zopfli?
  • Вопрос задан
  • 2978 просмотров
Подписаться 4 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
jetman
@jetman
Можно ли поменять библиотеку 7-zip на zopfli?
Почему нет? В pngwolf добавляете свою реализацию DeflateZopfli или меняете Deflate7zip, чтобы не изменять остальной код программы и готово. Но еще проще написать автору pngwolf через github, возможно его заинтересует zopfli.
Ответ написан
jetman
@jetman
В состав zopfli входит программа для сжатия zopflipng. Пробовали её? Может тогда pngwolf и не понадобится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы