Оптимизация SVG, экспорт кода и сжатие изображений

Изображения составляют больше половины веса большинства сайтов. Оптимизация картинок — это не украшательство, а скорость загрузки, метрики Core Web Vitals и реальные деньги.
Краткая история сжатия
1980 — CCITT стандартизирует факс-протокол Group 3, использующий производную от кодирования Хаффмана схему (Modified Huffman) для сжатия чёрно-белых изображений. Первый массовый алгоритм сжатия.
1987 — CompuServe выпускает GIF (Graphics Interchange Format). Использует LZW-сжатие без потерь, ограничен 256 цветами.
1992 — Joint Photographic Experts Group публикует JPEG. Первый формат с потерями, который отбрасывает незаметные глазу детали. Революция в фотографии и вебе.
1996 — PNG (Portable Network Graphics) создан как бесплатная замена GIF (патентный спор с Unisys по LZW). Сжатие без потерь, поддержка 16,7 млн цветов и альфа-канала.
2010 — Google выпускает WebP. Основан на технологиях видеокодека VP8. Сжимает на 25–34% лучше JPEG при том же качестве.
2019 — AVIF на основе видеокодека AV1. Ещё на 50% меньше WebP при том же PSNR. Поддержка HDR и 12-битного цвета.
SVG: мусор, который можно просто выкинуть
SVG — особый случай. Это не сжатие пикселей, а разметка. Проблема: инструменты (Figma, Adobe Illustrator, Inkscape) добавляют в SVG массу служебной информации:
- Метаданные (автор, время создания, версия)
- Пустые
<g>группы - Координаты с точностью до 10 знаков («0.0000000001»)
- Скрытые слои
- Неиспользуемые определения (
<defs>) - Комментарии
Библиотека SVGO (Node.js), вышедшая в 2012 году, стала стандартом для автоматической чистки SVG. Она может уменьшить файл Figma на 80–90% без каких-либо видимых изменений.
Что делают два оптимизатора
Оптимизатор SVG очищает, трансформирует и экспортирует векторную графику. Оптимизатор изображений отвечает за ресайз, сжатие и подготовку PNG, JPEG и WebP.
Загрузка и оптимизация SVG
Разметку можно вставить, выбрать .svg-файл, перетащить его в исходную панель или отправить текущий рисунок прямо из Pixel Painter. Для оптимизации используется локальная сборка SVGO и три стартовых пресета:
- Safe выполняет консервативную очистку.
- Balanced подходит как основной режим для production-файлов.
- Maximum включает дополнительные преобразования и несколько проходов оптимизации.
В сворачиваемом разделе Advanced настраиваются удаление метаданных и комментариев, схлопывание групп, размеры (dimensions), преобразование фигур в контуры (path), объединение path, сохранение <title> и <desc>, точность чисел, короткие теги и префикс для ID. viewBox сохраняется. Перед предпросмотром удаляются потенциально опасные теги <script>, обработчики событий (event handlers), встроенные документы и внешние ссылки.
Предпросмотр, форматирование и трансформации
Во вкладке Preview результат можно проверить на шахматном, светлом, тёмном или собственном фоне. Этот фон нужен только для просмотра и не добавляется в файл.
Весь SVG можно повернуть на 90 градусов влево или вправо, отразить по горизонтали или вертикали и сбросить к оптимизированному состоянию. При повороте геометрия и размеры корректно меняются местами. Вкладка SVG показывает минифицированную разметку или отформатированную (prettified) версию с двумя пробелами, четырьмя пробелами либо табами.
Экспорт кода и форматов
Все варианты создаются из одного и того же трансформированного SVG:
- оптимизированный SVG;
- React JSX с настраиваемым именем компонента;
- React Native JSX для
react-native-svgс предупреждениями о неподдерживаемых элементах; - Vue single-file component;
- PNG с заданной шириной, прозрачностью или собственным фоном;
- варианты Data URI (percent-encoded и Base64).
Текстовые форматы можно скопировать или скачать. PNG создаётся в браузере, а временные Blob-URL освобождаются автоматически.
Пакетное сжатие растровых изображений
Режим Image Compressor принимает до десяти PNG, JPEG, WebP и других поддерживаемых браузером изображений через окно выбора файлов или перетаскиванием (drag-and-drop). Для всей очереди задаются общие параметры: сохранить исходный формат каждого файла либо конвертировать всё в JPEG, WebP или PNG, выбрать качество lossy-форматов и фон для преобразования прозрачности в JPEG.
В каждой строке видны размеры и вес до/после, а результат можно скачать отдельно. Все готовые файлы также собираются в один ZIP прямо в браузере. Поскольку изображения уже сжаты, ZIP сохраняет их без лишнего повторного прохода сжатия.
Быстрый старт: откройте Оптимизатор SVG → вставьте или перетащите SVG → выберите Balanced → проверьте предпросмотр и уменьшение размера → при необходимости примените трансформацию → скопируйте компонент или скачайте SVG/PNG. Для растровых изображений откройте Оптимизатор изображений, перетащите до десяти файлов, выберите общие настройки и скачайте отдельные результаты или один ZIP-архив.
Похожие инструменты
Частые вопросы
Чем отличается сжатие с потерями от без потерь?
Сжатие без потерь (lossless — PNG, GIF, WebP lossless) сохраняет каждый пиксель исходного изображения. Сжатие с потерями (lossy — JPEG, WebP lossy, AVIF) отбрасывает детали, незаметные человеческому глазу, ради большего уменьшения размера. SVG — текстовый формат, его «сжатие» — это удаление избыточных данных из разметки (служебных метаданных, пустых тегов).
Кто создал WebP?
WebP разработан Google на основе технологии, приобретённой с компанией On2 Technologies в 2010 году. WebP использует те же техники сжатия, что и видеокодек VP8. В Chrome формат появился сразу, но полная поддержка во всех браузерах заняла почти десять лет — Firefox добавил её только в 2019 году, а Safari держался до 2020-го. WebP даёт на 25–34% меньший размер по сравнению с JPEG при том же качестве.
Почему SVG из Figma нужно чистить?
Графические редакторы могут добавлять метаданные, комментарии, длинные координаты, пустые группы, служебные атрибуты и лишние трансформации. Оптимизатор удаляет или упрощает эту разметку согласно пресету Safe, Balanced или Maximum и сохраняет viewBox.
Можно ли преобразовать SVG в React или Vue?
Да. Один и тот же оптимизированный SVG можно скопировать или скачать как SVG, React JSX, компонент React Native для react-native-svg или Vue single-file component. Для неподдерживаемых в React Native элементов выводятся предупреждения.
Можно ли экспортировать PNG и Data URI?
Да. Для PNG задаётся ширина, прозрачность или собственный фон. Вкладка Data URI создаёт percent-encoded и Base64-варианты.
Загружаются ли файлы на сервер?
Нет. Парсинг, санитизация, оптимизация, предпросмотр, генерация кода, растеризация в PNG и сжатие растровых изображений выполняются локально в браузере.
Что лучше — WebP или AVIF?
AVIF (основан на видеокодеке AV1, 2019) даёт лучшее сжатие, чем WebP, но поддержка в браузерах пока неполная (Chrome 85+, Firefox 93+, Safari 16.1+). WebP — более универсальный выбор на сегодня: поддерживается всеми современными браузерами.
Автор
Alex RelFullstack Engineer
В коммерческой разработке с 2011 года — больше 15 лет. Автор двух SaaS-продуктов: TeleGo.io и LingvoHabit.com. Статьи здесь выросли из реальной клиентской и продуктовой работы.



