Векторная графика для начинающих: теория и практика технического дизайна — страница 7 из 31

Оптимизация по весу и качеству векторных и растровых изображений для веб-разработки

Рассмотрим основные инструменты обработки графики, доступные техническому дизайнеру.

Базовая процедура – это оптимизация изображений перед следующей отправкой на сервер и публикацией в готовом продукте (для тестирования).

Зачем на практике нужна оптимизация графики

Рассмотрим статистику по данным международной организации HTTP Archive. Примерно 60% объема веб-страниц – это графика в форматах JPEG, PNG и GIF. По состоянию на июль 2017 года изображения составляли 1,7 Мб на средней веб-странице объемом 3,0 Мб.


Рисунок 7.1 – Доля потери в экономии трафика и времени при загрузке веб-ресурсов по причине отсутствия или недостаточной оптимизации графики (JPEG, PNG, GIF)


Более половины трафика составляет графика веб-ресурсов, остальное – код и сопутствующие файлы. Это позволяет сделать логичный вывод: чем лучше проведена оптимизация графики в пакетной автообработке на ПК или на сервере до публикации в веб-ресурсе, тем выше уровень исполнения цифрового продукта в направлении mobile friendly (критерий удобства для мобильных пользователей сети Интернет).

Технические задачи процедуры оптимизации

Процедура оптимизации (в англ. optimization) примечательна универсальным подходом к большинству графических форматов.

Оптимизация изображений включает в себя следующие задачи.


1. Изменение размера до необходимого в верстке. Этот шаг может быть пропущен, если изображение в масштабе 1:1 к необходимому результату. Речь идет о функции resize средствами языка программирования PHP (в серверном исполнении процедуры) или изменении размеров в графическом редакторе (в ручном исполнении).

2. Сжатие размера файлов по весу до порогового уровня (баланса по соотношению: размер/качество изображения).

3. Оптимальная выдача изображений на основе размера с помощью тегов

/
.


В среде веб-разработчиков общепринято: оптимизацию графики необходимо автоматизировать. Это соответствует философии экономия данных при передаче графики по цепочке разработчик > сервер > клиент.

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

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

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

Логическим исключением в данном рассмотрении являются специальные документы (CDR, AI, PDF, TIF) для полиграфической печати и видеофайлы (MPEG, AVI и др.), в настройках которых уровень сжатия (%) информации назначается на весь видеоряд файла (при выборе параметров рендеринга экспортируемого результирующего видеофильма).

В чем отличие сжатия без потерь и с потерями

Техническое решение оптимизации графических файлов условно характеризуется по признаку:

• сжатие без потерь;

• сжатие с потерями.


Сжатие с потерями характерно для графических форматов JPG, PNG и WebP. Описывается математически индексом структурного сходства (SSIM) до и после сжатия изображения.

Сжатие с потерями характеризуется следующими артефактами[3]:

• визуальные помехи в изображении;

• смазанные линии в рисунках объектов.

Консольные утилиты OptiPNG и Inkscape сжимают размеры исходного графического файла в формате PNG путем удаления невостребованных для следующего воспроизведения функций и другие атрибуты файла:

• EXIF-данные о владельце файла;

• полноцветность (24 bit) для черно-белых изображений;

• сопутствующие комментарии в коде (как, например, указание программы-экспортера Corel Draw и др.).


По определению термин индекс структурного сходства (сокр. SSIM от англ. термина structure similarity) является одним из инструментальных методов сопоставления схожести между двумя изображениями.


Рисунок 7.2 – Сравнение до и после сжатия с потерями


По другому определению SSIM-индекс – это математический метод полного сопоставления координат точек, т. е. с его помощью проводится измерение качества на основе исходного изображения (не сжатого или без искажений). По умолчанию сжатие изображения без потери качества является преимущественно привлекательным для технического дизайнера. Но допустимо и с потерей качества – например, оптимизация JPEG-файла красочного фона для инфоблока до качества 20–50% от полных 100% в случае, где текст размещается поверх затемненного фона белым цветом, как в примере на рис. 7.2.

В таком случае визуальный приоритет смещается с детализации и качества изображения на передний план с текстом, т. к. дизайнер убирает на дальний план размытое изображение (фоном) и создает разумно воспринимаемый эффект второго плана.

Рассмотрим детально код HTML реализации инфоблока с фоном, содержащим JPG с потерей качества (после оптимизации изображения).

Код HTML

Вышла новая модель Hyundai Creta 2022

Честная авторассрочка.

      Официальный дилер Hyundai в Санкт-Петербурге.

      Только в сентябре Суперцены на Creta.

      Гарантия 5 лет. Гарантия. Без выходных.

      Выгодные цены.

Код CSS для оформления блока

.illustration {

  display: block;

  width: 100%;

  max-width: 530px;

  min-height: 320px;

  padding: 0;

  background-color: #333;

  /* Следующее свойство задает фон блока с изображением (с потерями качества) */

  background-image: url('hyunday_creta_1280x747_after-compression.jpg');

  background-size: auto 100%;

  color: #fff;

}

.fade {

  display: block;

  width: calc(100% – 60px); /* Задает ширину: 100% минус отступы слева и справа */

  min-height: 290px; /* Задает минимальную высоту блока */

  padding: 15px 30px 20px 30px; /* Задает внутренние отступы в блоке до текста */

  /* Следующее свойство задает затемнение фона на 60% полупрозрачным слоем черного цвета с автомобилем */

  background-color: rgba(0,0,0,0.6);

}

h1 {

  margin-bottom: 0;

  font-family: Arial,sans-serif;

  font-size: 20px;

  font-weight:normal;

  line-height: 1.15em;

}

h1 i {

  display: block;

  padding-top: 5px;

  font-size: 26px;

  font-style: normal;

  color: #ffc107;

}

p {

  width: 100%;

  font-family: Arial,sans-serif;

  font-size: 15px;

  line-height: 1.5em;

}


Как следует из представленного примера, есть технические реализации, требующие использовать фотоизображение с потерями для вывода на фоне блока рекламного объявления.

По мнению разработчика Google Ильи Григорика, автора «Руководства по оптимизации изображений», основополагающим является утверждение:

«Правильный формат сочетает в себе желаемый визуальный результат и функциональные требования».

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


Рисунок 7.3 – Настройки сохранения Save for web в графическом редакторе Adobe Photoshop для полноцветного растрового изображения с потерями качества (20%) с параметром Progressive JPEG (для быстрой загрузки), в палитре RGB, с размытием границ силуэтов в изображении на уровне 1 условной единицы измерения


Форматы и программные инструменты оптимизации графики

Рассмотрим средства оптимизации основных форматов растровой и векторной графики для веб-разработки.



Для начинающего веб-разработчика основная работа с графикой сводится к форматам JPG (для полноцветных изображений), SVG (для иллюстраций и элементов интерфейса), PNG (для полупрозрачной графики). GIF отходит в прошлое как морально и технически устаревший формат, не отвечающий требованию масштабирования без потерь.

Более опытные веб-разработчики используют SVGz и WebP для решения задач оптимизации и прогрессивных коммерческих продуктов: веб-сервисов и мобильных приложений с высокими требованиями производительности.

Как следствие, установка и настройка базовых утилит для оптимизации графики в форматах JPG, PNG и SVG позволят начинающему веб-разработчику организовать процесс на поток в рамках простых проектов, для сложных проектов – по идее автоматизации, оптимизация должна быть настроена в серверном решении при загрузке изображений на сервер через веб-интерфейс.

Формат WebP является перспективным по сравнению с JPEG. Следует следить за ИТ-новостями по развитию технологии прогрессивного формата применения и вывода полноцветной графики в веб- и мобильных продуктах.


Как выбрать оптимальный из доступных инструментов для оптимизации графики?


Задайте критерии (факторы) отбора и воспользуйтесь факторным анализом вариантов (инструментов) оптимизации графики.

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


Как правильно провести вручную процедуру оптимизации серии растровых изображений для веб-ресурса?

По опыту автора, оптимальная схема оптимизации растровых изображений (например, в формате PNG) выглядит следующим образом (см. рис. 7.4).


Рисунок 7.4 – Схема оптимизации растровых изображений


По умолчанию не известно, все или ни один из входной серии изображений в растровом формате (например, PNG) являются изображениями без сжатия (без потерь). Поэтому необходимо их рассмотреть внимательно на глаз и разделить на группы. Если все изображения без потерь до оптимизации, можно действовать по схеме (на рис. 7.4). Для этого необходимо и достаточно использовать графический редактор Corel Draw для трассировки (перевода из растрового в векторный вид) изображений. Эта процедура выполняется вручную для каждого изображения с визуальной проверкой и настройками по ситуации (по балансу детализации и качества трассировочных изображений).

Экспорт в формат SVG с необходимой и достаточной детализацией 1000 точек на дюйм (1:1000). Таким образом получим изображения в виде масштабируемой векторной графики без потерь с характеристикой высокая четкость при любом масштабе. Далее используем любой доступный конвертер из SVG в формат WebP с настройкой детализации (на максимум) и качества на среднее значение. При экспорте после оптимизации в WebP получим сжатые изображения с минимальными потерями в качестве и эффективной оптимизацией.

В ходе подобного эксперимента были получены следующие результаты.


Исходные 8 логотипов в PNG (24 bit + альфа-канал): 94,7 Кб.

Трассировка: PNG > SVG.

Вес 8 x SVG: 159 Кб.

SVG > PNG > grayscale 8bit > 42,5 Кб.

PNG > WebP > 8 файлов (*.webp) = 16,1 Кб.

Оптимизация на 82% от исходного размера группы файлов.

Для оптимизации использован веб-сервис Squoosh: https://squoosh.app.

Подходит для ручной настройки и оптимизации поштучно каждого изображения (из короткой серии на обработку).

Факторный анализ основных графических форматов для применения в решении задач веб-разработки

Для расширения кругозора и ясности в применении основных графических форматов JPG, PNG, SVG, GIF, WebP рассмотрим проведенный автором факторный анализ по ключевым критериям:

• сжатие без потерь;

• сжатие с потерями;

• анимация;

• прозрачность (альфа-канал);

• масштабируемость.


Результаты факторного анализа основных графических форматов представлены в таблице.


Уточнение к таблице

• Прозрачность в формате SVG реализуется через свойство opacity с диапазоном значений от 0 (нулевая, т. е. полностью прозрачный слой) до 1 (полная непрозрачность слоя). Более детально свойства формата SVG представлены в спецификации формата Scalable Vector Graphics.

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

Выводы

В завершение темы представим достаточно явные выводы из факторного анализа (сравнения) форматов для веб-разработки.

• WebP приходит на смену формату JPEG (следует анализировать поддержку формата браузерами по сервису I can do).

• GIF как популярный формат остается в прошлом на уровне 2000-х годов.

• SVG является наиболее популярным наряду с WebP и конкурирует в плане вывода без потерь оптимизированной плоской графики (SVGz) для веб-интерфейсов.


Подведем итоги. В этой лекции вы познакомились с форматами воспроизведения графики для веб-разработки, факторным анализом.

Рекомендуется самостоятельно изучать спецификации форматов графики и проводить более детальный факторный анализ для выбора оптимальных решений в специфических задачах коммерческих проектов. Выбор форматов для перспективной коммерческой веб-разработки остается за техническим дизайнером – на основании факторного анализа по ключевым критериям и результатам A/B-теста, скорости загрузки и другим факторам, влияющим на обработку, хранение и вывод графики в веб- и мобильном продукте. Кроме случаев, жестко закрепленных в ТЗ.

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

Рекомендуемая литература

1. Оптимизация графики для веба: самое важное. Статья в переводе на русский язык. Автор оригинала: Адди Османи, руководитель разработки веб-браузера Chrome в корпорации Google. Опубликовано 6 сентября 2018. Режим доступа: https://habr.com/ru/post/422531

2. Пакетная оптимизация веса изображений формата JPEG (JPG), PNG. Веб-инструмент пакетной оптимизации графики. Режим доступа: http://compressjpeg.com

3. Пакетная оптимизация веса изображений формата JPEG (JPG), PNG. Веб-инструменты пакетной оптимизации графики. Режим доступа: https://tinyjpg.com/ и https://tinypng.com/

4. Руководство по оптимизации изображений. Автор: Илья Григорик, веб-разработчик Google. Режим доступа: https://web.dev/fast/#optimize-your-images

Лекция № 8