Skip to content

Оптимизация изображений - #118

Open
shoman4eg wants to merge 2 commits into
bitrix-tools:mainfrom
shoman4eg:optimize-images
Open

Оптимизация изображений#118
shoman4eg wants to merge 2 commits into
bitrix-tools:mainfrom
shoman4eg:optimize-images

Conversation

@shoman4eg

@shoman4eg shoman4eg commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Все PNG/JPEG/SVG в pages/**/_images (433 файла) прогнаны через пайплайн и оптимизированы:

  • PNG (430)pngquant (quality 80–95, near-lossless) + optipng -o4, метаданные удалены
  • JPEG (1)jpegoptim: progressive, strip-all, max quality 85
  • SVG (2)svgo --multipass, убрана editor-метадата draw.io (история правок, agent info)
До После
Суммарный размер 86.7 МБ 10.4 МБ
Экономия -88%

Качество проверено визуально и метрикой PSNR (41–46 дБ на выборке — уровень "визуально lossless").

Примечание про историю git

Этот PR не уменьшает размер .git — старые версии картинок (~86.7 МБ) остаются в истории, коммит только добавляет новые поверх. Если важен общий размер репозитория, можно рассмотреть git filter-repo (или BFG Repo-Cleaner), чтобы вычистить старые блобы из истории. Но это требует force-push и переписывания хэшей коммитов, что ломает синхронизацию для всех существующих форков/клонов — стоит делать осознанно и отдельно от этого PR.

@shoman4eg shoman4eg changed the title chore: оптимизированы изображения Оптимизация изображений Jul 27, 2026
@shoman4eg
shoman4eg force-pushed the optimize-images branch 2 times, most recently from 4c964e5 to cf26e8f Compare July 28, 2026 20:45
@mp-bitrix-doc

Copy link
Copy Markdown
Collaborator

Добрый день! Спасибо за PR.
Объём большой, прогнали автоматическую сверку каждого файла с базой. Результат чистый: разрешение совпадает у всех 435 файлов, прозрачность сохранена везде, медианный SSIM 0.9995.

Перед мерджем нужно поправить два момента.

1. Вернуть pages/cms-basics/_images/admin-panel.jpeg. Единственный JPEG в PR и самый пострадавший файл: PSNR 33 дБ при экономии всего 25% — перекодирование не окупается.

2. Порог --quality=80-95 мягковат для фото и градиентов. Отдельно замерили дизеринг в гладких зонах — там, где он заметен глазу. По 414 файлам из 435 всё в порядке, 21 стоит перегнать.

Семь файлов с фотографиями внутри — только lossless, pngquant не справляется даже на q95:

pages/advanced/_images/debug.png
pages/get-started/_images/install-solution-2.png
pages/cms-basics/_images/site-templates-4.png
pages/cms-basics/_images/admin-panel-5.png
pages/get-started/_images/create-component-6.png
pages/performance/_images/caching-3.png
pages/get-started/_images/create-controller-3.png

Самый явный случай — debug.png: товарное фото, 107k цветов сжаты до 191, дизеринг виден при увеличении.

Остальные 14 файлов достаточно перегнать с --quality=95-100 — улучшение почти бесплатное: около 28 КБ на все четырнадцать, дизеринг падает втрое:

pages/modules/_images/architecture.png
pages/modules/_images/architecture-2.png
pages/modules/_images/architecture-3.png
pages/advanced/_images/localization.png
pages/advanced/_images/localization-7.png
pages/performance/_images/composite-site-3.png
pages/performance/_images/composite-site-4.png
pages/security/_images/frame-protection.png
pages/security/_images/captcha-2.png
pages/security/_images/proactive-security-6-2.png
pages/security/_images/two-factor-auth-1.png
pages/cms-basics/_images/titles-8.png
pages/cms-basics/_images/user-groups-18.png
pages/cms-basics/_images/mail-22.png

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants