Извлечение SVG из Font Awesome

89

Я хочу получить данные пути SVG из глифов Font Awesome, чтобы я мог использовать их прямо как SVG в моем HTML. Я думал, что это будет так же просто, как скопировать данные пути из fontawesome-webfont.svg , но когда я использую его в своем HTML, все символы отображаются в перевернутом виде. Кто-нибудь знает почему?

(См. Скрипку )

Font Awesome SVG:

<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />

... Портировано в HTML SVG (и уменьшено):

<svg width="1000" height="1000" ><path transform="scale(0.1,0.1)" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z"/></svg>
Ярин
источник

Ответы:

62

Все в соответствии со спецификацией SVG ...

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

В соответствии с этим комментарием изменение оболочки на, <svg height="179.2" width="179.2"><path transform="scale(0.1,-0.1) translate(0,-1536)" d="..." /></svg>похоже, помогает, где 1792 - это единицы на каждую, а 1536 - это подъем на элемент font-face.

Роберт Лонгсон
источник
6
Для полноты этого ответа изменение оболочки на, <svg height="179.2" width="179.2"><path transform="scale(0.1,-0.1) translate(0,-1536)" d="..." /></svg>кажется, помогает, где 1792- units-per-emи 1536- элемент ascenton font-face.
mckamey
Re 1792 is the units-per-em: Опечатка? Я бы подумал, что будет 179.2соответствовать высоте / ширине.
Нейт Кук
99

Просто получите готовые значки svg из этого репозитория github.
Они уже перевернуты и центрированы по мере необходимости.

введите описание изображения здесь

Нажмите любой файл и затем "Raw" введите описание изображения здесь

Энджи
источник
10
Я обнаружил, что на многих из них были обрезанные по бокам значки, например, автомобиль
Bankzilla
21

Приложение IcoMoon упрощает эту задачу .

jedierikb
источник
2
Да, IcoMoon потрясающий
Ярин
3
IcoMoon очень прост в использовании, но я обнаружил, что он экспортирует более длинные пути, чем SVG в этом репозитории GitHub . Попробуйте для сравнения иконку fa-gift. Это path837 символов через IcoMoon по сравнению с 514 в репо .
Дэн Даскалеску
Хорошая находка Дэн, понятия не имел об этой оговорке. Тем не менее, я люблю IcoMoon.
SISYN
7

Существует также инструмент node.js, который автоматизирует это для вас и создаст до и после verify.html. https://github.com/eugene1g/font-blast

Я использовал его для других шрифтов, пока преобразование значков было неудачным, но остальные шрифты SVG были хороши.

TomByrer
источник
2
Я собираюсь попробовать это
Джон Опасный
font-blast super quick and easy
00-BBB
4

Вы можете просто скачать последнюю версию faздесь: https://fontawesome.com/

А потом зайдите в advanced-options/raw-svgпапку. Там вы найдете три папки brands, regularи solidсодержащую все последние иконки доступны.

Орландстер
источник
3

Вы можете скачать их с flaticon.com здесь:

http://www.flaticon.com/packs/font-awesome

Джон Опасный
источник
Может быть полезно, но когда вы хотите изменить размер пути с 512x512 до 20x20, это требует большого количества кнопок,
уменьшающих масштаб