AdvanceCOMP - скачать полную версию бесплатно на русском

AdvanceCOMP: оптимизация и сжатие файлов

AdvanceCOMP: оптимизация и сжатие файлов

AdvanceCOMP Compression Utilities — это набор компактных консольных утилит для рекомпрессии файлов без изменения их основного содержимого. В пакет входят advpng, advzip, advmng и advdef: каждая команда отвечает за свой тип данных и решает конкретную задачу — уменьшить размер PNG, ZIP, MNG, GZ, TGZ или SVGZ за счет повторного сжатия Deflate-потока и связанных с ним структур. В отличие от обычного архиватора, программа не делает упор на удобную упаковку файлов через графическое окно. Ее сильная сторона — точечная оптимизация уже существующих файлов, работа в терминале, запуск из скриптов и предсказуемое поведение в автоматизированных сборках.
Выбор редакции

Скачать AdvanceCOMP бесплатно

Рекомендуем

ФотоМАСТЕР

  • Простой интерфейс
  • Ретушь и замена фона
  • Фильтры и автокоррекция
  • Быстрая обработка фото

AdvanceCOMP

  • Узкая задача
  • Мало инструментов ретуши
  • Нет замены фона
  • Слабее для обработки

Это не редактор изображений, не универсальный компрессор медиафайлов и не программа с кнопками Открыть, Сжать и Сохранить. Интерфейс AdvanceCOMP — командная строка. Пользователь вводит команду, выбирает режим, указывает уровень сжатия и передает путь к файлу. Такой формат выглядит сухо, но именно он делает программу удобной для разработчиков, системных администраторов, авторов игровых сборок, веб-разработчиков и тех, кто регулярно оптимизирует ассеты пакетно.

AdvanceCOMP особенно полезна там, где важен каждый килобайт: ZIP-архивы для публикации, PNG-графика в веб-проекте, SVGZ-иконки, GZIP-файлы, ROM-коллекции, MNG-захваты из эмуляторов, небольшие игровые проекты и демосценические сборки. Программа не обещает магического сжатия всего подряд. Она делает более узкую работу: берет уже сжатый файл и пытается пересобрать его плотнее.

Что такое AdvanceCOMP

AdvanceCOMP — это коллекция рекомпрессоров. Слово recompression здесь ключевое: программа обычно не создает новый формат и не меняет смысл файла, а повторно сжимает данные внутри поддерживаемого контейнера. Для PNG это означает работу с PNG-структурой и Deflate-данными изображения; для ZIP — повторное сжатие элементов архива; для GZ, TGZ и SVGZ — рекомпрессию Deflate-потока; для MNG — оптимизацию анимационных клипов, связанных с PNG-семейством.

В состав пакета входят четыре основные утилиты:

Утилита Полное назначение Что делает на практике
advpng AdvanceCOMP PNG Compression Utility Рекомпрессирует PNG-файлы, выводит информацию о PNG, применяет уровни -1, -2, -3, -4
advzip AdvanceCOMP ZIP Compression Utility Создает, распаковывает, проверяет, просматривает и рекомпрессирует ZIP-архивы
advmng AdvanceCOMP MNG Compression Utility Рекомпрессирует MNG-клипы, извлекает PNG-кадры, создает MNG из PNG-последовательности
advdef AdvanceCOMP Deflate Compression Utility Рекомпрессирует Deflate-данные внутри PNG, MNG, GZ, TGZ и SVGZ

Такое разделение важно. У AdvanceCOMP нет главного режима, который сам догадывается, что пользователь хотел сделать. Для PNG используется advpng, для ZIP — advzip, для MNG — advmng, для общего Deflate-потока — advdef. Это не недостаток, а архитектура программы: каждая команда короче, проще и точнее.

Назначение программы

Главная задача AdvanceCOMP — уменьшить размер файлов без потери основного содержимого. В случае PNG программа не меняет пиксели изображения, как это делают lossy-компрессоры. В случае ZIP она не меняет распакованные файлы внутри архива. В случае GZ, TGZ и SVGZ она работает с уже сжатым потоком и пытается записать его компактнее.

Типичные сценарии выглядят так:

  • PNG-иконки в проекте стали меньше, но визуально остались теми же;
  • ZIP-архив после финальной сборки прошел дополнительную рекомпрессию;
  • SVGZ-файл с векторной графикой стал компактнее;
  • MNG-захват из эмулятора был разобран на PNG-кадры;
  • GZIP-файл был пересжат на более сильном уровне;
  • пакетная обработка PNG встроена в Makefile, shell-скрипт или CI/CD.

AdvanceCOMP подходит не для интерактивного редактирования, а для финальной полировки файлов. Это утилита последнего прохода: сначала проект собирается обычными инструментами, потом файлы прогоняются через advpng, advzip или advdef.

Что программа делает хорошо

AdvanceCOMP хороша в задачах, где нужно не открыть файл и посмотреть, а быстро применить одну операцию к одному или множеству файлов. Особенно сильны следующие сценарии:

  1. Lossless compression PNG
    advpng уменьшает PNG за счет рекомпрессии и оптимизации структуры файла. Программа удаляет вспомогательные PNG-блоки, объединяет IDAT-блоки и использует Deflate-сжатие.
  2. ZIP recompression
    advzip полезен для финальной обработки ZIP-архивов. Он умеет добавлять файлы в архив, извлекать содержимое, показывать список файлов, тестировать архив и выполнять рекомпрессию через -z.
  3. Работа с Deflate-потоками
    advdef удобен для .gz, .tgz, .svgz, а также для некоторых PNG и MNG-сценариев. Он не перестраивает весь файл как редактор, а меняет именно сжатые данные внутри поддерживаемого формата.
  4. MNG-оптимизация и извлечение кадров
    advmng полезен для старых эмуляторных и MAME-сценариев: MNG-клип можно рекомпрессировать или извлечь из него PNG-последовательность.
  5. Автоматизация
    Утилиты легко запускать из скриптов. Команда вроде advpng -z -4 *.png обрабатывает набор файлов без графического интерфейса, без ручного выбора каждого изображения и без лишних диалогов.

Что AdvanceCOMP не делает

AdvanceCOMP нельзя оценивать как обычный графический оптимизатор изображений. У программы другая роль.

Она не делает следующие вещи:

  • не редактирует изображения;
  • не кадрирует PNG;
  • не меняет разрешение;
  • не конвертирует JPEG в PNG;
  • не работает как полноценный графический архиватор с деревом файлов;
  • не показывает предпросмотр до и после;
  • не сравнивает визуальное качество;
  • не сжимает JPEG, WebP, AVIF;
  • не заменяет ImageMagick, Photoshop, GIMP или 7-Zip;
  • не дает современного drag-and-drop интерфейса.

Это важно понимать заранее. Пользователь, который ожидает окно с кнопками и предпросмотром, быстро разочаруется. Пользователь, которому нужна CLI-утилита для рекомпрессии PNG, ZIP, GZ, SVGZ и MNG, получит именно то, что нужно.

Состав пакета AdvanceCOMP

advpng

advpng — утилита для работы с PNG. Ее основная задача — рекомпрессия PNG-файлов с целью уменьшения размера. В команде используются режимы --list и --recompress, уровни сжатия от --shrink-fast до --shrink-insane, а также дополнительные параметры вроде --iter, --force, --quiet, --help и --version.

Базовая команда:

advpng -z image.png

Максимальный режим:

advpng -z -4 image.png

Пакетная обработка:

advpng -z -4 *.png

advpng особенно уместен для PNG-ассетов: иконок, спрайтов, UI-графики, скриншотов, небольших веб-изображений и игровых ресурсов. Он не должен использоваться как универсальный PNG-валидатор для любых экзотических PNG-файлов. На практике это означает простое правило: перед массовой обработкой нужно проверить результат на копии файлов.

advzip

advzip — утилита для ZIP-архивов. Она умеет:

  • -a, --add — создать архив с указанными файлами;
  • -x, --extract — извлечь содержимое архива;
  • -l, --list — показать список файлов в архиве;
  • -t, --test — проверить архив;
  • -z, --recompress — рекомпрессировать архив;
  • -p, --pedantic — выполнить более строгие проверки;
  • -k, --keep-file-time — сохранить время ZIP-файла при рекомпрессии;
  • -i, --iter N — задать дополнительные итерации для сильных режимов.

Базовый просмотр:

advzip -l archive.zip

Проверка:

advzip -t archive.zip

Рекомпрессия:

advzip -z archive.zip

Максимальная рекомпрессия:

advzip -z -4 archive.zip

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

advmng

advmng работает с MNG. Формат MNG сейчас встречается редко, но в контексте AdvanceCOMP он важен из-за связи с эмуляторными сценариями и видеозахватом из старых MAME-процессов. Утилита умеет рекомпрессировать MNG, извлекать PNG-кадры и собирать MNG из PNG-последовательности.

Основные команды:

advmng -l clip.mng
advmng -z clip.mng
advmng --extract clip.mng

Создание MNG из PNG-последовательности:

advmng -a 60 output.mng frame0001.png frame0002.png frame0003.png

advmng также поддерживает опции, связанные с MNG-спецификой: scroll-оптимизацию, уменьшение глубины цвета, удаление альфа-канала и режимы LC/VLC. Это делает утилиту узкоспециализированной: обычному веб-разработчику она может не понадобиться, но для старых MNG-процессов она закрывает задачу напрямую.

advdef

advdef — самый низкоуровневый инструмент пакета. Он работает с Deflate-данными в .png, .mng, .gz, .tgz и .svgz. Важная особенность: структура файла не перестраивается целиком, изменяются именно сжатые данные.

Базовая команда:

advdef -z file.gz

Максимальный режим:

advdef -z -4 file.svgz

С итерациями:

advdef -z -4 -i 50 file.svgz

advdef удобно использовать для SVGZ-иконок, gzip-ресурсов и TGZ-архивов, когда нужна именно Deflate-рекомпрессия, а не полноценное архивное управление.

Интерфейс программы

Интерфейс AdvanceCOMP — это терминал. У программы нет панелей, меню, вкладок и кнопок. Вместо них есть структура команды:

утилита режим уровень файл

Пример:

advpng -z -4 image.png

Расшифровка:

Часть команды Значение
advpng Запускается PNG-утилита из пакета
-z Включается режим рекомпрессии
-4 Выбирается максимальный уровень
image.png Указывается файл для обработки

С точки зрения пользователя, элементы интерфейса AdvanceCOMP — это не кнопки, а команды и флаги:

Элемент CLI Для чего нужен
--help Показать справку
--version Показать версию утилиты
--list / -l Просмотреть содержимое файла или архива
--recompress / -z Выполнить рекомпрессию
--extract / -x Извлечь данные
--test / -t Проверить ZIP
--quiet / -q Сократить вывод
--force / -f Принудительно принять результат даже при увеличении размера
--iter / -i Задать дополнительные итерации для сильных режимов

CLI-интерфейс требует аккуратности. Ошибка в пути, запуск не из той папки или отсутствие прав на запись сразу приводят к ошибке. Но этот же интерфейс дает преимущество: команды легко повторить, вставить в документацию проекта, добавить в скрипт или выполнить для сотен файлов.

Работа с advpng: оптимизация PNG

advpng — самый понятный инструмент в пакете, если задача связана с изображениями. Он не меняет картинку как редактор. Он берет PNG-файл и пытается записать его компактнее.

Просмотр справки

Первое действие после установки и проверки доступности утилиты:

advpng --help

Справка показывает доступные режимы: --list, --recompress, уровни --shrink-store, --shrink-fast, --shrink-normal, --shrink-extra, --shrink-insane, а также параметры --force, --quiet, --help, --version.

Просмотр информации о PNG

Команда:

advpng -l image.png

Режим -l не сжимает файл, а показывает содержимое. Это полезно перед обработкой: можно убедиться, что утилита читает файл, путь указан верно, а сам PNG не поврежден.

Базовая рекомпрессия PNG

Команда:

advpng -z image.png

-z — основной режим. Он означает recompress. Утилита анализирует файл, пробует записать сжатые данные компактнее и сохраняет результат.

Перед применением к рабочей папке лучше создать копию:

cp image.png image.backup.png
advpng -z image.png

В Windows:

Copy-Item image.png image.backup.png
advpng -z image.png

Причина простая: AdvanceCOMP работает с исходным файлом. Если результат нужно сравнить, резервная копия обязательна.

Уровни сжатия PNG

У advpng есть несколько уровней:

advpng -z -1 image.png
advpng -z -2 image.png
advpng -z -3 image.png
advpng -z -4 image.png

Таблица уровней:

Опция Название Практический смысл
-0 --shrink-store Записать без сжатия, обычно не нужно для оптимизации PNG
-1 --shrink-fast Быстрое сжатие
-2 --shrink-normal Нормальный баланс скорости и размера
-3 --shrink-extra Более сильный режим
-4 --shrink-insane Максимальный режим, медленнее остальных

Для обычной работы чаще всего используют -2 или -4. Режим -2 удобен для регулярной обработки, -4 — для финального прохода перед публикацией. В сильных режимах можно использовать -i, чтобы задать дополнительные итерации; больше итераций иногда дает меньший файл, но обработка занимает больше времени.

Пример:

advpng -z -4 -i 20 image.png

Пакетная обработка PNG

В Linux и macOS:

advpng -z -4 *.png

Для подпапок через find:

find assets -name "*.png" -exec advpng -z -4 {} ;

В Windows PowerShell:

Get-ChildItem -Path . -Filter *.png | ForEach-Object {
    advpng -z -4 $_.FullName
}

Для рекурсивной обработки:

Get-ChildItem -Path . -Filter *.png -Recurse | ForEach-Object {
    advpng -z -4 $_.FullName
}

Такие команды хорошо подходят для папок assets, images, icons, sprites, ui, textures. Главное — заранее исключить файлы, которые не должны терять вспомогательные PNG-метаданные.

Что происходит с PNG внутри

PNG содержит разные блоки. Критические блоки нужны для изображения, вспомогательные могут хранить метаданные, текстовые поля, цветовую информацию, гамму, DPI и другие сведения. advpng применяет несколько стратегий: удаляет ancillary chunks, объединяет IDAT chunks и использует Deflate-сжатие.

На практике это означает:

  • пиксели обычно остаются теми же;
  • размер может уменьшиться;
  • часть метаданных может исчезнуть;
  • файл может стать удобнее для веб-публикации;
  • если метаданные важны, результат надо проверять отдельно.

Для иконок, спрайтов и веб-графики это обычно приемлемо. Для архивных изображений, цветокоррекционных файлов, PNG с важными текстовыми chunk-данными или специализированной графики — нет, пока не проверено.

Работа с advzip: рекомпрессия ZIP-архивов

advzip — не просто маленький архиватор. Его главная ценность — рекомпрессия уже готовых ZIP-архивов. Он может создать архив, распаковать его, показать список файлов, протестировать целостность и пересжать содержимое.

Просмотр содержимого ZIP

advzip -l archive.zip

Команда выводит список файлов внутри архива. Это первый безопасный шаг: файл не меняется, пользователь просто проверяет, что архив читается.

Проверка архива

advzip -t archive.zip

Режим -t проверяет архив. Перед рекомпрессией это полезно: если исходный ZIP уже поврежден, оптимизация не должна быть первым действием.

Более строгая проверка:

advzip -t -p archive.zip

-p, или --pedantic, включает более детальные проверки ZIP-целостности. Этот режим полезен, когда архив должен быть максимально совместимым и надежным.

Рекомпрессия ZIP

Базовая команда:

advzip -z archive.zip

С максимальным уровнем:

advzip -z -4 archive.zip

С сохранением времени ZIP-файла:

advzip -z -4 -k archive.zip

С итерациями:

advzip -z -4 -i 100 archive.zip

Параметр -i особенно интересен для сильных режимов -3 и -4: он задает дополнительные итерации компрессора. Больше итераций обычно означает больше времени и иногда меньший размер. Это не линейная зависимость: переход с 10 до 20 итераций может дать эффект, а переход со 100 до 1000 — уже почти ничего, кроме долгого ожидания.

Создание ZIP через advzip

advzip -a archive.zip file1.txt file2.txt image.png

advzip может создать архив, но в повседневной работе чаще используют обычный архиватор или системную команду, а потом прогоняют результат через advzip -z -4.

Извлечение ZIP

advzip -x archive.zip

Этот режим полезен для простых случаев, но не делает advzip полноценной заменой 7-Zip, WinRAR или системным ZIP-инструментам. Утилита рассчитана прежде всего на рекомпрессию и тестирование.

Когда advzip особенно полезен

advzip имеет смысл использовать:

  • перед отправкой ZIP-дистрибутива;
  • перед загрузкой конкурсной сборки;
  • при ограничении размера файла;
  • для финальной упаковки web/game assets;
  • для ZIP-архивов, которые уже собраны другим инструментом;
  • когда нужно автоматизировать оптимизацию в скрипте.

Пример финального шага сборки:

zip -r build.zip dist
advzip -z -4 build.zip
advzip -t build.zip

Работа с advdef: рекомпрессия Deflate-данных

advdef — инструмент для случаев, когда нужно обработать Deflate-поток внутри поддерживаемого файла. Он работает с .png, .mng, .gz, .tgz и .svgz. Его особенность в том, что он не меняет внутреннюю структуру файла, а модифицирует только сжатые данные.

Базовая команда

advdef -z file.gz

Максимальное сжатие

advdef -z -4 file.gz

SVGZ

advdef -z -4 icon.svgz

SVGZ — это SVG, сжатый GZIP. Поэтому advdef подходит для рекомпрессии SVGZ-иконок, если проект использует такой формат.

TGZ

advdef -z -4 archive.tgz

TGZ — это tar-архив, сжатый gzip. advdef не управляет файлами внутри tar-архива, не добавляет и не удаляет их. Он работает с gzip-слоем.

Когда использовать advdef вместо advpng

Для PNG чаще логичнее начинать с advpng, потому что это специализированная PNG-утилита. advdef стоит использовать, когда нужна именно Deflate-рекомпрессия или когда файл относится к .gz, .tgz, .svgz.

Упрощенное правило:

Задача Лучше использовать
Оптимизировать PNG-ассеты advpng
Рекомпрессировать ZIP advzip
Рекомпрессировать SVGZ advdef
Рекомпрессировать GZ/TGZ advdef
Извлечь PNG-кадры из MNG advmng
Рекомпрессировать MNG advmng

Ограничение advdef

advdef требует памяти для обработки полного сжатого и несжатого содержимого. Поэтому огромные файлы могут стать проблемой. Для больших архивов и ресурсов нужно тестировать обработку отдельно, а не запускать ее вслепую на единственной копии данных.

Работа с advmng: MNG, кадры и эмуляторные сценарии

advmng — самый нишевый инструмент в пакете. MNG сейчас не является массовым веб-форматом, но в истории AdvanceCOMP он занимает важное место: программа создавалась с учетом ROM, snapshot и clip-коллекций эмулируемых игр.

Просмотр MNG

advmng -l clip.mng

Команда выводит информацию о файле. Это безопасный режим перед дальнейшей обработкой.

Рекомпрессия MNG

advmng -z clip.mng

С максимальным уровнем:

advmng -z -4 clip.mng

Режим -4 для advmng очень медленный, поэтому его стоит использовать для финальной обработки, а не для каждого промежуточного теста.

Извлечение PNG-кадров

advmng --extract clip.mng

Или коротко:

advmng -x clip.mng

Эта команда извлекает PNG-кадры из MNG-клипа. Для длинных клипов количество файлов может быть большим: каждый кадр становится отдельным PNG.

Создание MNG из PNG-последовательности

advmng -a 60 output.mng frame0001.png frame0002.png frame0003.png

В этой команде 60 — частота кадров. PNG-файлы должны иметь одинаковый размер и одинаковую битовую глубину.

Scroll и Move-оптимизация

advmng умеет использовать MNG Delta и MNG Move для клипов, где между кадрами меняется не все изображение, а только часть сцены. Это особенно характерно для игровых записей со скроллящимся фоном. Опция -s HxV задает размер шаблона для поиска скроллящегося фона.

Пример:

advmng -z -s 8x8 clip.mng

Если фон движется только вертикально:

advmng -z -s 0x16 clip.mng

Если только горизонтально:

advmng -z -s 16x0 clip.mng

Это не повседневная веб-оптимизация, а специализированная обработка MNG-клипов.

Уровни сжатия AdvanceCOMP

AdvanceCOMP использует понятную шкалу уровней:

Опция Длинное имя Значение Практический сценарий
-0 --shrink-store Не сжимать Технические тесты, хранение без сжатия
-1 --shrink-fast Быстрое сжатие Быстрый проход по большому числу файлов
-2 --shrink-normal Нормальный режим Повседневная обработка
-3 --shrink-extra Более сильное сжатие Финальная оптимизация
-4 --shrink-insane Максимальный режим Когда размер важнее времени

В advpng, advzip и advdef сильные режимы связаны с более затратными компрессорами и дополнительными итерациями. Для advzip и advdef режим -2 использует libdeflate, -3 — 7z, -4 — zopfli; итерации задаются через -i.

Практический подход:

  • для черновой обработки — -1 или -2;
  • для регулярной сборки — -2;
  • для релизной сборки — -4;
  • для жесткого лимита размера — -4 -i N;
  • для огромных файлов — сначала тест на копии.

Практическая инструкция: первый запуск

Шаг 1. Открыть терминал в папке с утилитами

В Windows это может быть cmd.exe или PowerShell. В Linux и macOS — обычный терминал. После перехода в папку с программой можно проверить, что рядом находятся исполняемые файлы advpng, advzip, advmng, advdef или их Windows-варианты с .exe.

Пример Windows-проверки:

dir

Ожидаемые файлы:

advdef.exe
advmng.exe
advpng.exe
advzip.exe

Шаг 2. Проверить запуск

advpng --version
advzip --version
advdef --version
advmng --version

Если терминал пишет, что команда не найдена, проблема не в PNG или ZIP, а в пути запуска: программа не находится в текущей папке или не добавлена в PATH.

Шаг 3. Скопировать тестовый PNG

cp image.png image-test.png

В Windows PowerShell:

Copy-Item image.png image-test.png

Шаг 4. Выполнить оптимизацию PNG

advpng -z -4 image-test.png

После выполнения нужно сравнить размер исходного и обработанного файла. Если результат устраивает, команду можно применять к группе PNG.

Шаг 5. Создать тестовый ZIP

zip -r test.zip assets

Если ZIP уже есть, этот шаг не нужен.

Шаг 6. Проверить ZIP

advzip -t test.zip

Шаг 7. Рекомпрессировать ZIP

advzip -z -4 test.zip

Шаг 8. Проверить архив после обработки

advzip -t test.zip

Проверка после рекомпрессии обязательна для важных архивов. Особенно если ZIP должен открываться разными программами и использоваться не только на машине разработчика.

Рекомендованные команды для разных задач

Сценарий Команда
Быстро оптимизировать PNG advpng -z -2 image.png
Максимально оптимизировать PNG advpng -z -4 image.png
Обработать все PNG в папке advpng -z -4 *.png
Просмотреть ZIP advzip -l archive.zip
Проверить ZIP advzip -t archive.zip
Максимально рекомпрессировать ZIP advzip -z -4 archive.zip
Рекомпрессировать ZIP с итерациями advzip -z -4 -i 100 archive.zip
Оптимизировать SVGZ advdef -z -4 icon.svgz
Оптимизировать GZ advdef -z -4 file.gz
Извлечь кадры из MNG advmng --extract clip.mng
Рекомпрессировать MNG advmng -z -4 clip.mng

Примеры реального использования

Оптимизация PNG-ассетов сайта

find public/images -name "*.png" -exec advpng -z -4 {} ;

Такой запуск подходит для статического сайта, где PNG используются как иконки, скриншоты интерфейса, элементы UI или декоративная графика. После обработки нужно проверить страницы в браузере, особенно если PNG содержали нестандартные метаданные.

Оптимизация PNG в игровом проекте

advpng -z -4 assets/ui/*.png
advpng -z -4 assets/sprites/*.png
advpng -z -4 assets/tiles/*.png

Для 2D-игр это типичный сценарий: множество небольших PNG, где суммарная экономия может быть заметной.

Финальная рекомпрессия ZIP-сборки

zip -r release.zip build
advzip -z -4 release.zip
advzip -t release.zip

Команда не меняет файлы внутри сборки, а пытается сделать ZIP компактнее.

Рекомпрессия с большим числом итераций

advzip -z -4 -i 200 release.zip

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

SVGZ-иконки

advdef -z -4 icons/logo.svgz

Если проект хранит SVGZ, advdef позволяет уменьшить размер без ручной распаковки и повторной упаковки SVG.

MNG-захват

advmng --extract gameplay.mng

После этого в папке появится последовательность PNG-кадров. Ее можно обрабатывать дальше: собирать видео, анализировать кадры, архивировать, конвертировать или использовать в другом pipeline.

Безопасность обработки файлов

AdvanceCOMP часто перезаписывает файл результатом обработки. Это удобно для автоматизации, но рискованно при неаккуратном запуске.

Перед массовой обработкой нужно соблюдать несколько правил:

  • не запускать команду на единственной копии проекта;
  • сначала проверять 2–3 файла вручную;
  • сравнивать размер до и после;
  • открывать обработанный PNG в целевом просмотрщике;
  • проверять ZIP через advzip -t;
  • хранить исходники в системе контроля версий;
  • не использовать -f, если нет ясной причины.

Опция -f, или --force, принудительно принимает новый файл даже в случае, если он больше старого. В обычной оптимизации это почти никогда не нужно. Она полезна только для специальных тестов, где важно переписать файл независимо от результата.

Производительность

Скорость AdvanceCOMP зависит от пяти факторов:

  1. Тип файла
    PNG, ZIP, GZ, TGZ, SVGZ и MNG обрабатываются по-разному.
  2. Размер файла
    Маленькие иконки обрабатываются быстро, большие архивы и длинные MNG-клипы — дольше.
  3. Уровень сжатия
    -1 быстрее, -4 медленнее.
  4. Количество итераций
    -i 10, -i 50, -i 100 и выше увеличивают время обработки.
  5. Содержимое файла
    Уже хорошо оптимизированный PNG может почти не уменьшиться, а плохо сохраненный PNG — уменьшиться заметнее.

Главное правило: максимальный режим не должен быть режимом по умолчанию для всех задач. Для разработки удобнее -2, для финального релиза — -4. Если включать -4 -i 1000 в каждую сборку, программа начнет тормозить процесс сильнее, чем приносить пользы.

Качество сжатия

AdvanceCOMP ориентирован на lossless-рекомпрессию. Для PNG это означает сохранение изображения без визуальной потери качества. Но без потери картинки не всегда означает без потери всех данных файла. PNG может содержать вспомогательные блоки, и advpng удаляет ancillary chunks при оптимизации.

Что обычно сохраняется:

  • видимое изображение;
  • размеры;
  • пиксельное содержимое;
  • возможность открыть файл как PNG.

Что может измениться:

  • метаданные;
  • текстовые блоки;
  • служебная информация;
  • часть цветовых или вспомогательных данных, если они были записаны как ancillary chunks.

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

История версий программы

История AdvanceCOMP хорошо показывает, что программа развивалась не как модный GUI-компрессор, а как инженерный набор утилит вокруг ZIP, PNG, MNG и Deflate.

Период / версия Что изменилось
AdvanceSCAN 0.6-beta, 2002/05 Появилась AdvanceZIP utility
AdvanceSCAN 1.0, 2002/05 Первый публичный релиз, добавлен --pedantic для advzip
AdvanceSCAN 1.2, 2002/08 Добавлены advpng, advmng и Windows-версия
AdvanceCOMP 1.5, 2003/01 Пакет отделен от AdvanceSCAN, добавлена advdef
AdvanceCOMP 1.6, 2003/05 advmng получил экспорт PNG из MNG через -x
AdvanceCOMP 1.8, 2003/10 advdef получил поддержку .gz, исправлена работа с PNG со split IDAT
AdvanceCOMP 1.9, 2003/11 Добавлена поддержка .tgz в advdef, advmng -a начал создавать MNG из PNG-последовательности
AdvanceCOMP 1.10, 2004/04 Добавлена поддержка alpha channel и опция -n в advmng
AdvanceCOMP 1.13, 2004/11 Добавлена поддержка .svgz в advdef
AdvanceCOMP 1.15, 2005/10 advdef начал определять тип файла по заголовку, а не только по расширению
AdvanceCOMP 1.17, 2013/03 Лицензия изменена на GPL3, добавлена поддержка zopfli через -4 --shrink-insane, появился -i --iter
AdvanceCOMP 1.19, 2014/03 Добавлена опция -k --keep-file-time для advzip
AdvanceCOMP 1.20, 2015/08 Исправлена рекомпрессия больших .gz, обновлен zopfli, сохранение EFS-флага в ZIP
AdvanceCOMP 2.0, 2017/06 Добавлено чтение MNG с глубиной 1, 2 и 4 бита, добавлен 64-битный Windows-бинарник
AdvanceCOMP 2.1, 2018/02 Добавлена поддержка ZIP с data descriptor signature, исправлено аварийное завершение на некорректных ZIP-данных

Эта история объясняет характер программы. AdvanceCOMP развивалась вокруг практических задач: ZIP-совместимость, поддержка новых контейнеров для advdef, MNG-особенности, zopfli, итерации, исправления больших GZIP-файлов и аккуратность при работе с архивами.

Плюсы AdvanceCOMP

Компактный набор инструментов

AdvanceCOMP не перегружен функциями. В пакете четыре утилиты, и каждая отвечает за конкретную область. Это удобно: не нужно разбираться в большом интерфейсе, выбирать профиль экспорта или искать скрытую настройку.

Удобство автоматизации

CLI-формат — главное преимущество. Команды легко встроить в:

  • shell-скрипт;
  • PowerShell-сценарий;
  • Makefile;
  • npm scripts;
  • GitHub Actions;
  • Dockerfile;
  • локальный build pipeline;
  • финальный release script.

Поддержка нескольких форматов

Пакет работает не только с PNG. В одном наборе есть инструменты для ZIP, MNG, GZ, TGZ и SVGZ. Это отличает его от узких PNG-оптимизаторов.

Сильные режимы сжатия

-4 --shrink-insane и -i --iter полезны в сценариях, где размер важнее времени. Это особенно актуально для маленьких ZIP-сборок, конкурсных проектов, веб-ассетов и архивов, которые публикуются один раз.

Предсказуемость

Команды простые и повторяемые. Если в документации проекта написано:

advpng -z -4 assets/*.png
advzip -z -4 release.zip

любой разработчик может повторить обработку без ручных настроек.

Минусы AdvanceCOMP

Нет графического интерфейса

Для многих пользователей это главный барьер. Нет окна, предпросмотра, drag-and-drop, прогресс-бара в привычном виде, списка файлов с галочками и визуального сравнения.

Нужно понимать командную строку

Ошибки в путях, пробелы в именах файлов, текущая директория, права на запись — все это становится ответственностью пользователя.

Не универсальный оптимизатор изображений

AdvanceCOMP не работает с JPEG, WebP, AVIF и другими популярными форматами изображений. Для современной веб-графики его часто нужно использовать вместе с другими инструментами.

Не всегда дает лучший PNG-результат

Современные PNG-оптимизаторы вроде oxipng, OptiPNG, pngcrush и ZopfliPNG могут быть удобнее или эффективнее в отдельных PNG-сценариях. AdvanceCOMP силен как набор рекомпрессоров, а не как единственный лучший PNG-инструмент для всех случаев.

MNG-сценарии устарели

advmng полезен, но сам MNG сегодня встречается редко. Для большинства пользователей это будет не ежедневная функция, а нишевая возможность.

Возможна потеря вспомогательных метаданных

advpng удаляет ancillary chunks. Для веба это часто плюс, но для архивных и профессиональных файлов может быть проблемой.

Сравнение с аналогами

Программа Форматы Интерфейс Сильная сторона Ограничения
OptiPNG PNG, также конвертация BMP/GIF/PNM/TIFF в PNG CLI Хорошая lossless-оптимизация PNG, проверки и исправления PNG Не работает с ZIP, GZ, TGZ, SVGZ как набор рекомпрессоров
pngcrush PNG CLI Подбор PNG-фильтров и уровней сжатия, работа с ancillary chunks Узкая ориентация на PNG
oxipng PNG/APNG CLI Быстрый многопоточный PNG-оптимизатор, современные уровни -o Не закрывает ZIP/GZ/MNG-задачи
ZopfliPNG PNG CLI Сильное Deflate-сжатие PNG, подбор фильтров Очень высокая нагрузка на CPU, узкая PNG-специализация
7-Zip ZIP, 7z и другие архивы GUI/CLI Универсальный архиватор, удобная работа с архивами Не специализируется на PNG/MNG-рекомпрессии
gzip / zopfli GZ и Deflate-сценарии CLI Хороши для GZIP-потоков Не являются набором утилит для PNG, ZIP и MNG одновременно

OptiPNG оптимизирует PNG без потери информации и умеет выполнять дополнительные операции вроде проверки целостности и конвертации некоторых внешних форматов в PNG. pngcrush подбирает комбинации compression levels и PNG filter methods, работает с IDAT datastream и ancillary chunks. oxipng — современный CLI-оптимизатор PNG с уровнями -o 0-o 6, поддержкой удаления метаданных и альфа-оптимизации. ZopfliPNG использует Zopfli compression для Deflate, сравнивает стратегии фильтрации scanline и может удалять ненужные для веба chunks.

Главное отличие AdvanceCOMP от этих программ — ширина набора. Он не только про PNG. В одном пакете есть advpng, advzip, advmng и advdef, поэтому программа закрывает сразу несколько рекомпрессионных задач.

AdvanceCOMP для веб-разработчика

Для веб-разработчика AdvanceCOMP полезен прежде всего в трех местах:

  1. PNG-ассеты;
  2. ZIP-дистрибутивы;
  3. SVGZ-ресурсы.

Пример структуры проекта:

project/
  public/
    images/
    icons/
  dist/
  release.zip

Команды:

advpng -z -4 public/images/*.png
advpng -z -4 public/icons/*.png
advdef -z -4 public/icons/*.svgz
advzip -z -4 release.zip

В npm scripts это может выглядеть так:

{
  "scripts": {
    "optimize:png": "advpng -z -4 public/images/*.png",
    "optimize:zip": "advzip -z -4 release.zip"
  }
}

Для веб-проекта важно не только уменьшить файл, но и проверить результат:

  • открыть страницы в браузере;
  • проверить PNG с прозрачностью;
  • убедиться, что SVGZ корректно отдается сервером;
  • не удалились ли важные метаданные;
  • сравнить размер до и после.

AdvanceCOMP не заменяет весь pipeline оптимизации, но хорошо вписывается в финальный этап.

AdvanceCOMP для геймдева

В 2D-геймдеве программа полезна для спрайтов, тайлов, UI, иконок и ZIP-сборок. Особенно если игра публикуется в формате архива или участвует в конкурсе с лимитом размера.

Пример:

advpng -z -4 assets/sprites/*.png
advpng -z -4 assets/ui/*.png
zip -r game.zip index.html src assets
advzip -z -4 -i 100 game.zip
advzip -t game.zip

Такой pipeline сохраняет рабочие файлы проекта отдельно, а оптимизацию применяет к финальной сборке. Это правильный подход: исходники остаются удобными для разработки, релизная версия становится компактнее.

AdvanceCOMP для демосцены и game jam

В демосцене и game jam-среде часто есть жесткие ограничения: 13 KB, 64 KB, 1 MB, конкретный размер архива или лимит загрузки. В таких условиях advzip -z -4 -i N может быть полезнее, чем обычная ZIP-компрессия.

Пример:

advzip -z -4 -i 500 entry.zip

Но здесь важно не переоценивать итерации. Если архив уже хорошо сжат, дополнительная тысяча итераций может дать крошечную экономию. Сначала нужно оптимизировать содержимое: убрать лишние файлы, минифицировать код, сократить ассеты, проверить PNG. И только после этого применять сильную рекомпрессию ZIP.

AdvanceCOMP для ретро-эмуляции

Исторически AdvanceCOMP тесно связан с задачами вокруг эмулируемых игр: ROM, snapshots, clips, MNG. Поэтому advmng выглядит устаревшим только для массового веба, но не для старых эмуляторных рабочих процессов.

Типичный MNG-сценарий:

advmng --extract capture.mng

После этого пользователь получает PNG-последовательность кадров. Ее можно обрабатывать дальше: собирать видео, анализировать кадры, архивировать, конвертировать или использовать в другом pipeline.

Частые ошибки и решения

Команда не найдена

Ошибка:

advpng: command not found

или в Windows:

'advpng' is not recognized as an internal or external command

Причина: терминал не видит исполняемый файл.

Решения:

./advpng --version

В Windows:

advpng.exe --version

Или перейти в папку с программой:

cd C:toolsadvancecomp
advpng.exe --version

Путь содержит пробелы

Ошибка часто возникает при путях вроде:

C:My Projectassetsimage.png

Правильно:

advpng -z -4 "C:My Projectassetsimage.png"

В PowerShell:

advpng -z -4 "C:My Projectassetsimage.png"

Файл не уменьшился

Это нормальная ситуация. Возможные причины:

  • файл уже хорошо сжат;
  • PNG создан оптимизатором;
  • выбран слабый уровень;
  • содержимое плохо поддается дополнительной рекомпрессии;
  • программа решила оставить прежний вариант, потому что новый не меньше.

Для проверки можно попробовать:

advpng -z -4 -i 20 image.png

Но если результат не меняется, насильно дожимать файл бессмысленно.

Файл стал больше

Обычно AdvanceCOMP выбирает меньший вариант, но при -f можно заставить программу принять файл даже если он больше. Поэтому -f не стоит использовать в обычной оптимизации.

ZIP не открывается в другой программе

Проверить архив:

advzip -t archive.zip

Более строгая проверка:

advzip -t -p archive.zip

Не использовать экспериментальные режимы, которые создают нестандартные ZIP, если архив должен открываться обычными программами. В старых сборках advzip встречался режим -N, создающий ZIP, непригодные для чтения другими приложениями.

Перепутаны advpng и advdef

Для обычного PNG сначала используется:

advpng -z -4 image.png

Для SVGZ:

advdef -z -4 icon.svgz

Для GZ:

advdef -z -4 file.gz

Нет прав на запись

Если файл находится в защищенной папке, программа не сможет заменить его. Решение — обработать копию в пользовательской директории или запустить терминал с нужными правами.

Обработка идет слишком долго

Причина почти всегда в -4 или большом -i.

Быстрее:

advpng -z -2 image.png

Медленнее, но сильнее:

advpng -z -4 -i 50 image.png

Для ежедневной работы не нужно включать максимальные параметры на все файлы.

Практические настройки для проектов

Быстрый профиль

Для частой локальной обработки:

advpng -z -2 assets/*.png
advzip -z -2 build.zip

Плюсы:

  • быстро;
  • удобно в разработке;
  • не блокирует сборку надолго.

Минусы:

  • не максимальный размер.

Релизный профиль

Для финальной публикации:

advpng -z -4 assets/*.png
advdef -z -4 public/*.svgz
advzip -z -4 release.zip
advzip -t release.zip

Плюсы:

  • сильное сжатие;
  • хорош для релиза;
  • подходит для ручного финального шага.

Минусы:

  • медленнее;
  • требует проверки.

Агрессивный профиль

Для ограничений по размеру:

advpng -z -4 -i 100 assets/*.png
advzip -z -4 -i 500 release.zip

Плюсы:

  • максимум попыток уменьшить файл;
  • полезно при жестком лимите.

Минусы:

  • может быть очень медленно;
  • прирост после определенного числа итераций становится минимальным.

Как встроить AdvanceCOMP в рабочий процесс

Makefile

optimize-png:
	advpng -z -4 assets/*.png

optimize-zip:
	advzip -z -4 release.zip

check-zip:
	advzip -t release.zip

Bash-скрипт

#!/usr/bin/env bash
set -e

echo "Optimizing PNG files..."
find assets -name "*.png" -exec advpng -z -4 {} ;

echo "Recompressing ZIP..."
advzip -z -4 release.zip

echo "Testing ZIP..."
advzip -t release.zip

PowerShell

$pngFiles = Get-ChildItem -Path "assets" -Filter *.png -Recurse

foreach ($file in $pngFiles) {
    advpng -z -4 $file.FullName
}

advzip -z -4 release.zip
advzip -t release.zip

CI/CD

В CI/CD AdvanceCOMP лучше запускать на финальных артефактах, а не на исходной папке репозитория. Это снижает риск случайного изменения файлов разработки.

Правильная логика:

  1. собрать проект;
  2. скопировать ассеты в dist;
  3. оптимизировать PNG в dist;
  4. создать ZIP;
  5. рекомпрессировать ZIP;
  6. проверить ZIP;
  7. опубликовать артефакт.

Советы по аккуратной работе

Не обрабатывайте исходники без контроля версий

Если PNG лежат в Git, изменение можно откатить. Если они лежат в единственной папке без резервной копии, риск выше.

Проверяйте прозрачность

PNG с альфа-каналом нужно открывать после обработки. Особенно если это UI-элементы, иконки, спрайты и полупрозрачные слои.

Не используйте один инструмент для всех форматов

AdvanceCOMP не должен обрабатывать JPEG или WebP. Для каждого формата нужен свой инструмент.

Не гонитесь за -i 1000 без причины

Большие итерации имеют смысл только тогда, когда размер действительно критичен. В обычном проекте это чаще потеря времени.

Проверяйте ZIP после рекомпрессии

Минимальный безопасный набор:

advzip -z -4 archive.zip
advzip -t archive.zip

Для строгой проверки:

advzip -t -p archive.zip

Кому стоит использовать AdvanceCOMP

Программа подходит:

  • разработчикам;
  • веб-разработчикам;
  • авторам CLI-скриптов;
  • системным администраторам;
  • участникам game jam;
  • авторам небольших ZIP-сборок;
  • тем, кто работает с PNG-ассетами;
  • пользователям, которым нужна рекомпрессия SVGZ/GZ/TGZ;
  • энтузиастам ретро-эмуляции и MNG-сценариев;
  • тем, кто предпочитает точные команды вместо графического интерфейса.

AdvanceCOMP особенно удобен для людей, которые понимают, что такое терминал, файл, путь, аргумент командной строки и пакетная обработка.

Кому лучше выбрать другую программу

Программа не подходит:

  • пользователям, которым нужен GUI;
  • дизайнерам, не работающим с терминалом;
  • тем, кто хочет перетаскивать файлы мышью;
  • тем, кто оптимизирует JPEG/WebP/AVIF;
  • тем, кому нужен визуальный предпросмотр;
  • тем, кто боится перезаписи файлов;
  • пользователям, которым нужен универсальный архиватор;
  • тем, кому важна сохранность всех PNG-метаданных без отдельной проверки.

Для PNG-only задач часто удобнее рассмотреть OptiPNG, pngcrush, oxipng или ZopfliPNG. Для архивов общего назначения — 7-Zip. Для изображений разных форматов — специализированные графические оптимизаторы.

Итоговая оценка

AdvanceCOMP Compression Utilities — это практичный, строгий и узконаправленный набор консольных инструментов. Его не нужно воспринимать как современную программу для сжатия картинок в бытовом смысле. Это CLI-набор для рекомпрессии PNG, ZIP, MNG, GZ, TGZ и SVGZ, где каждая утилита выполняет свою задачу.

Сильные стороны программы:

  • точная рекомпрессия;
  • удобство автоматизации;
  • работа с несколькими форматами;
  • сильные режимы -3 и -4;
  • поддержка итераций;
  • полезность для финальных сборок;
  • компактность;
  • предсказуемое CLI-поведение.

Слабые стороны:

  • отсутствие GUI;
  • необходимость понимать терминал;
  • ограниченность по форматам;
  • риск потери вспомогательных PNG-метаданных;
  • устаревшая MNG-специализация;
  • не всегда лучший результат по сравнению с современными PNG-оптимизаторами.

Лучший сценарий использования — финальная рекомпрессия ассетов и архивов: advpng для PNG, advzip для ZIP, advdef для GZ/TGZ/SVGZ, advmng для MNG. В этой роли AdvanceCOMP остается полезным инструментом: не универсальным, не дружелюбным к новичку, но точным и эффективным.

FAQ

AdvanceCOMP сжимает без потери качества?

Да, программа ориентирована на lossless-рекомпрессию. Для PNG видимое изображение сохраняется, но вспомогательные PNG-метаданные могут быть удалены.

Есть ли у AdvanceCOMP графический интерфейс?

Нет. Программа работает через командную строку.

Можно ли сжимать JPEG?

Нет. JPEG не входит в задачи AdvanceCOMP.

Чем advpng отличается от advdef?

advpng — специализированная PNG-утилита. advdef — инструмент для рекомпрессии Deflate-данных в PNG, MNG, GZ, TGZ и SVGZ.

Почему PNG не уменьшился?

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

Безопасен ли режим -4?

Да, но он медленнее. Перед массовой обработкой нужно тестировать результат на копии файлов.

Что делает -i?

-i задает дополнительные итерации для сильных режимов. Больше итераций может дать лучший размер, но требует больше времени.

Что делать после advzip -z -4?

Проверить архив:

advzip -t archive.zip

Можно ли использовать AdvanceCOMP в CI/CD?

Да. Программа хорошо подходит для автоматизированной обработки финальных артефактов.

Нужно ли хранить резервные копии?

Да. AdvanceCOMP часто работает с исходным файлом напрямую, поэтому резервная копия или Git-контроль обязательны для безопасной работы.