SVG Cleaner 0.5: ещё быстрее и компактнее

svg cleaner 0.6

Выпущено важное обновление SVG Cleaner — программы для пакетной оптимизации векторной графики в формате SVG.

Поскольку разработчик оригинального движка на Perl покинул проект, оставшийся участник проекта, Евгений Рейзнер, переписал всё на C++. Новый движок почти полностью повторяет функциональность предыдущего. Тестирование на выборках до 20 000 файлов показывает следующие результаты:

  • новая версия, в среднем, в 5—8 раз быстрее оригинала;
  • потребление памяти в сравнении с v0.4 упало, как минимум, вдвое;
  • появилась возможность обрабатывать большие (>20МБ) файлы SVG;
  • удаётся удалять до 45% мусора;
  • качество сжатия пока что хуже на 1—2%;
  • вероятность обработать файл с ошибкой — 0.002%.

За счёт избавления от Perl Евгению удалось на порядок уменьшить размер инсталлятора для Windows и сделать пакет для Mac, о котором его давно просили пользователи.

Кроме того, бэкенд работает из консоли как отдельное приложение, так что SVG Cleaner можно при желании использовать на сервере. В консольном приложении пока реализованы лишь самые основные функции: папки с файлами, а также файлы SVGZ оно пока не обрабатывает.

Среди дальнейших планов:

  • удаление не менее 75% мусора;
  • более умная разгруппировка элементов g (сейчас группы с фильтрами, масками и прочим пропускаются).
  • группировка элементов не только по полному, но и по частичному совпадению стиля (атрибут style);
  • преобразование сегментов контуров, аппроксимация контуров;
  • удаление одинаковых и почти одинаковых (в долях процентов) элементов;
  • удаление элементов, которые перекрыты другими и не видны;
  • применение всех матриц трансформаций;
  • переход с QtXml на libxml2, поскольку первый тратит на разбор файлов почти треть времени работы программы;
  • более удобный GUI с подробным описанием параметров очистки.

Для скачивания доступен исходный код, сборки для Windows и Mac; есть репозиторий для Ubuntu. За развитием проекта можно следить на GitHub.

2 Комментарии

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.