Вектор? Растр? А может — и то, и другое? / Хабр

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


Изображение для верхней части сайта

Речь идёт о подготовке изображения, рассчитанного на использовании в верхней правой части сайта jamstackconf.com. Мы, в маркетинговой команде Netlify, используем Figma. Первая моя попытка экспорта этого изображения для использования его на сайте оказалась далеко не самой удачной.

Попытка №1: SVG

Вот на какие примерные размеры изображения я вышел, экспортировав материалы в формате SVG:

  • 10,1 Мб — исходный SVG-файл, экспортированный из Figma.
  • 9,9 Мб — SVG-файл, оптимизированный с помощью инструмента SVGOMG.

Теперь я знаю, что это — размеры несжатых файлов (до применения к ним алгоритмов сжатия GZIP/Brotli). Но я уверен, что никто не станет со мной спорить о том, что изображение размером 9,9 Мб, пусть и оптимизированное, слишком велико даже для самого старательного алгоритма сжатия (Уточнение: после GZIP-сжатия 9,9 Мб превратились в 7,36 Мб). Учитывая то, что в этом SVG-файле имеется очень много встроенных растровых изображений, с помощью одного лишь SVGOMG как следует этот файл не сжать. Попробуем перейти к растровому изображению и узнать о том, насколько далеко в деле оптимизации изображений нас это может завести.

Попытка №2: PNG


  • 1,2 Мб — исходный PNG-файл, экспортированный из Figma.

Вы все знаете меня достаточно хорошо для того чтобы понять, что я не размещу картинку размером 1,2 Мб в очень важном месте страницы. Поэтому я решил заняться оптимизацией. Тут важно учитывать то, что мне надо было сохранить канал прозрачности. В результате, если изменится фоновый цвет страницы, не придётся снова оптимизировать изображение. Этот факт означает, что мы сразу же отказываемся от формата JPEG.

▍ImageOptim


  • 831 Кб — PNG-файл, оптимизированный с помощью ImageOptim.

Меня впечатлило то, что, после буквально одного движения мыши, ImageOptim убрал примерно 400 Кб данных из моего изображения. Но итоговые 831 Кб — это всё ещё слишком много.

▍Squoosh


  • 376 Кб — PNG-файл, оптимизированный с помощью Squoosh (с применением уменьшенной цветовой палитры, состоящей из 256 цветов).

Вот это уже похоже на что-то приличное. Опция уменьшения цветовой палитры Squoosh (Reduce palette) даёт огромный выигрыш в размерах готового изображения. Ещё я немного поэкспериментировал с параметрами формата AVIF в Squoosh, но формат PNG, всё равно, оказался лучше (Уточнение от 27 августа: обратите внимание на новый раздел с заголовком «Попытка №4: AVIF»).

Попытка №3: WebP


  • 152 Кб — WebP-файл, оптимизированный в Squoosh (сжатие без потерь, цветовая палитра уменьшена до 256 цветов).

Поразительная экономия! И этот вариант предусматривает использование тега <picture> для прогрессивного перехода с PNG на WebP. Многие могут решить, что этот результат уже «достаточно хорош», но всё то, ради чего я писал этот материал, ещё впереди (и то, что получилось, получилось, и правда, очень хорошо).

Попытка №4: AVIF


  • 168 Кб — AVIF-файл, оптимизированный в Squoosh (полная цветовая палитра).

Уточнение от 27 августа: Джейк Арчибальд дал мне хороший совет, который заключался в том, чтобы снова попробовать формат AVIF (но в режиме сжатия с потерями), не уменьшая цветовую палитру. Полагаю, что это — очень хорошая идея! Уменьшение цветовой палитры (хотя и даёт значительную экономию размера файла) определённым образом сказывается на готовом изображении. Моей неофициальной целью было получение AVIF-изображения как можно более высокого качества и сохранение при этом размеров файла на уровне WebP-версии с уменьшенной цветовой палитрой.

Вот — отличный материал Джейка про AVIF.

Этот вариант изображения получен при использовании следующих настроек Squoosh:

  • Lossless: выключено.
  • Quality: 45.
  • Subsample Chroma: выключено.
  • Effort: 6.

Победитель: два отдельных слоя: SVG + AVIF/WebP/PNG


  • 74 Кб + 4,2 Кб — оптимизированные SVG-файл и AVIF/WebP/PNG-файл

Если выделить те части изображения, которые хорошо описываются векторными инструментами (градиенты, линии и прочее подобное), и поместить их в SVG-изображение, а всё остальное сохранить в растровом формате, мы можем добиться даже лучших результатов. Пользуясь этим подходом, я, правда, сделал не всё, что было возможно. А именно, перенёс на векторный слой не всё, что можно было туда перенести. Возможно, кто-то решит, пользуясь таким подходом, оставить больше фрагментов изображения на переднем плане, например, на тот случай, если кто-нибудь захочет распечатать страницу (ну — это если кто-то до сих пор выводит веб-страницы на принтерах).

Два слоя изображения

Используя растровый слой как изображение переднего плана, а вспомогательное векторное изображение — в виде того, что задаётся в CSS-свойстве

background-image, мы можем скомбинировать эти изображения. Можно даже вернуть оптимизированное растровое изображение обратно в формат SVG, в виде Data URI, внедрённого в <image>, но я так делать не стал.

Итоговые результаты

Тут показаны результаты вышеописанных экспериментов. Полагаю, то, что удалось прийти от исходного изображения размером более 10 Мб к изображению размером в 78 Кб, это — не так уж и плохо. Экономия рассчитана в сравнении с предыдущей попыткой.

Метод Размер Экономия
Исходный SVG 10,06 Мб
SVG, оптимизированный с помощью SVGOMG 9,92 Мб -0,14 Мб
PNG 1,16 Мб -8,76 Мб
PNG, оптимизированный с помощью ImageOptim 831 Кб -329 Кб
PNG, оптимизированный с помощью Squoosh (уменьшенная палитра) 376 Кб -455 Кб
WebP, оптимизированный с помощью Squoosh (уменьшенная палитра) 152 Кб -224 Кб
AVIF, оптимизированный с помощью Squoosh (полная палитра)
168 Кб
+16 Кб
Два слоя: SVG (SVGOMG) и AVIF/WebP/PNG (Squoosh) 78 Кб -90 Кб

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

Разница между растром и вектором

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

Содержание

  • 1 Определение растра и вектора
  • 2 Плюсы и минусы растровых и векторных изображений
  • 3 В каких случаях использовать растр, а в каких — вектор?

Определение растра и вектора

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

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

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

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

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

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

В каких случаях использовать растр, а в каких — вектор?

Растровые изображения, как правило, используются для фотографий, поэтому Photoshop является программой для работы с растром. С другой стороны Adobe Illustrator – программа для работы с векторными файлами, которая автоматически создает формулы в процессе создания изображения. Логотипы, бланки и другие графические элементы лучше всего создавать векторными, тогда как фотографии – растровыми. Все векторы должны быть преобразованы в растры для использования в веб-разработках. Текст, как правило, создается в векторном формате.
Если Вы в раздумьях – создать изображение векторным или растровым, используйте простое правило: если Вы разрабатываете его с нуля, и для него понадобится всего лишь несколько цветов, остановите свой выбор на векторе. Если же Вы работаете над редактированием изображения с богатой цветовой гаммой, лучше использовать растровый формат. Для многих проектов вектор и растр используются одновременно. Например, для брошюры можно логотип создать векторным, а фотографию, на которой изображены счастливые клиенты – растровой.

Кролик Роялти бесплатно векторное изображение

Кролик Роялти бесплатно векторное изображение — VectorStock
  1. лицензионные векторы
  2. кролик векторов
ЛицензияПодробнее
Стандарт Вы можете использовать вектор в личных и коммерческих целях. Расширенный Вы можете использовать вектор на предметах для перепродажи и печати по требованию.

Тип лицензии определяет, как вы можете использовать этот образ.

Станд. Расшир.
Печатный/редакционный
Графический дизайн
Веб-дизайн
Социальные сети
Редактировать и изменить
Многопользовательский
Предметы перепродажи
Печать по требованию
Владение Узнать больше
Эксклюзивный Если вы хотите купить исключительно этот вектор, отправьте художнику запрос ниже:

Хотите, чтобы это векторное изображение было только у вас? Эксклюзивный выкуп обеспечивает все права этого вектора.

Мы удалим этот вектор из нашей библиотеки, а художник прекратит продажу работ.

Способы покупкиСравнить
Плата за изображение $ 14,99 Кредиты $ 1,00 Подписка 9 долларов0082 0,69

Оплатить стандартные лицензии можно тремя способами. Цены составляют $ $.

Оплата с помощью Цена изображения
Плата за изображение $ 14,99 Одноразовый платеж
Предоплаченные кредиты $ 1 Загружайте изображения по запросу (1 кредит = 1 доллар США). Минимальная покупка 30р.
План подписки От 69 центов Выберите месячный план. Неиспользованные загрузки автоматически переносятся на следующий месяц.
Способы покупкиСравнить
Плата за изображение $ 39,99 Кредиты $ 30,00

Существует два способа оплаты расширенных лицензий. Цены составляют $ $.

Оплата с помощью Стоимость изображения
Плата за изображение $ 39,99 Оплата разовая, регистрация не требуется.
Предоплаченные кредиты $ 30 Загружайте изображения по запросу (1 кредит = 1 доллар США).
Оплата
Плата за изображение $ 499
Дополнительные услугиПодробнее
Настроить изображение Доступно только с оплатой за изображение 9 долларов0082 85,00

Нравится изображение, но нужно всего лишь несколько модификаций? Пусть наши талантливые художники сделают всю работу за вас!

Мы свяжем вас с дизайнером, который сможет внести изменения и отправить вам изображение в выбранном вами формате.

Примеры
  • Изменить текст
  • Изменить цвета
  • Изменить размер до новых размеров
  • Включить логотип или символ
  • Добавьте название своей компании или компании
Включенные файлы

Подробности загрузки.

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *