{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

Оптимизация и защита: img → SVG → Fonts

Приём не новый, но актуальный.

Поисковые системы остро рассматривают производительность сайта (экран загрузки, время перехода в интерактив и другие метрики) при разных условиях: скорости соединения, устройства просмотра и так далее.

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

  • Брейкпоинты и медиазапросы в CSS (загрузка заранее подготовленного контента в зависимости от разрешения устройства).
  • JavaScript по оптимизации изображений (дополнительная нагрузка на сайт в виде исполнения скрипта).
  • «Ленивая» загрузка (с Chrome 76) при использовании в HTML атрибута loading="lazy".
  • «Дедовское» сжатие и размещение на хостинге других изображений.

Также стоит отметить, что сейчас развита тенденция использовать SVG (векторные изображения) вместо тех же PNG, JPG.

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

Все преимущества можно почитать в других статьях.

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

Рассмотрим на примере:

Есть исходная картинка в формате PNG и SVG.

Домик no name

Создадим из нее файл шрифтов. Сервисов для этого существует множество, они бесплатные. Опишу на примере одного из них (не реклама). Загружаем наше SVG на сервис:

1. Импортируем. 2. Выбираем. 3. Генерируем​

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

По умолчанию генерируется файл style.css. В данном случая я его переименовал.

Верстаем три блока. Подключаем файлы скаченных шрифтов.

​Верстка первой странички

В первом блоке загружен обычный PNG, во втором — SVG, в третьем символ через тег <i>. Размеры изображения для первых двух блоков идет через img, для третьего — через font-size (размер шрифта).

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

Размеры нашего домика в этих форматах:

Размер PNG
Размер SVG
Размер в шрифте​

Разница в размере между ними существенная. При этом в виде файла шрифтов он выше, чем у SVG, так как увеличивается само количество файлов. Попытаемся сохранить наш домик со страницы.

Домик в .png и .svg сохраняется в своем формате
​При клике на домик в виде символа →
​Сохранение возможно только в формате всего HTML
Через инспектор видим, что это класс​

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

Напоследок — аудит на реальном хостинге. Указывается лишь только формат PNG, оказывающий какую-никакую нагрузку:

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

Заранее благодарен за прочтение и ваше время!

0
21 комментарий
Написать комментарий...
Андрей Губин

если вы всю свою эксклюзивную графику в woff или otf "спрячете", да я вам только спасибо скажу, збс, теперь можно всю ее выкачать за пару кликов

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

Лёгким нет. Но просто скачивается сам файл шрифта. Устанавливаем его в систему. Потом в Corel Draw/Illustrator (кому что больше нравится) через диспетчер символов вставляем интересующий нас и переводим его в кривые.

Ответить
Развернуть ветку
ManManage Live
Автор

Если это попробовать через панель разработчика, файл шрифтов выгрузится только в формате woff2, из которого извлечь не получится.
Хотя, я попробую ваш способ.

Ответить
Развернуть ветку
Alexander Zhikh

Есть даже онлайн конвертеры woff2 в ttf/otf.

Ответить
Развернуть ветку
Андрей Губин

ээй, это же мой излюбленный способ 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Dimm Overight

Если кто-то хочет по-быстрому «тиснуть» ваш логотип или иконку, то можно просто «принт-скином». Нужен размер больше - увеличиваем масштаб в браузере и скриним. От воровства - так себе способ.

Ответить
Развернуть ветку
Pixel Lens

Меня бесит, когда люди прячут графику. Я ведь всё равно выкорчую - просто потрачу чуть больше времени. А если не смогу - всегда есть принтскрин, фотошоп, перо, или еще проще - гугл, в котором всё уже сделано))

Ответить
Развернуть ветку
Прочел это-потратил время зря

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

Ответить
Развернуть ветку
Олег Якунин
Ответить
Развернуть ветку
ManManage Live
Автор

Это Visual Studio Code. Она бесплатная, продукт Microsoft.
Также установите разные плагины, обязательно Emmet и другие. Много статей об этом написано.

Ответить
Развернуть ветку
Alexey Rusanov

Я могу ошибаться, но роде бы эммет из коробки идет)

Ответить
Развернуть ветку
Vitold S.
 обратной генерации в графический элемент будет невозможно

В теории это вполне реализуемо:

1. Преобразовать в картинки все символы;
2. Шрифт это набор инструкций по канвасу, что в целом можно имитировать печатью на том же канвасе PostScript или PDF.

А на практике никто за такую хрень не готов платить.

Кстати основная идея с шрифтами подкрашивать элементы и делать их отключенными (шейдить).

В целом за сервис спасибо. Попробую поиграть с сервисом. Даже интересно.

А нет ли статьи со списоком всех инструментов для преобразования.

Ответить
Развернуть ветку
ManManage Live
Автор

1. Это бесплатно. Сервис по генерации бесплатный. Там есть просто уже готовые изображения по всяческим подпискам. А свою графику генерить - хоть сколько и как угодно. 
2. Шрифт - это кодирование в разных форматах. Обратных генераций нет. Попробуйте.
3. Имитацией печатью - возможно, но это дополнительная работа в редакторах.
4. Шрифт - он будет выглядеть в любом размере на любых дисплеях одинаково качественно, в отличии от .png/.svg.

Ответить
Развернуть ветку
Zoibana
Шрифт - он будет выглядеть в любом размере на любых дисплеях одинаково качественно, в отличии от .png/.svg.

SVG - это кривые. Это не растр. Качество от размера не зависит НИКАК

Ответить
Развернуть ветку
Уоррен Баффет

Не всегда. Внутри svg можно использовать растр. И тогда качество будет зависеть от размера.

Ответить
Развернуть ветку
Zoibana

Ну это уже извращения

Ответить
Развернуть ветку
Уоррен Баффет

Есть люди, которые топят за то, чтобы svg заменил html+css. Вот это действительно извращение. )

Ответить
Развернуть ветку
Фёдор Гребенников

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

Ответить
Развернуть ветку
Уоррен Баффет

Я бы сказал, что такие шрифты в 2019 году, это в принципе ошибка. Но тут уж на любителя.

Ответить
Развернуть ветку
ManManage Live
Автор

Совершенно согласен. Поспешил. SVG в моем комментарии лишний.

Ответить
Развернуть ветку
18 комментариев
Раскрывать всегда